基于套接字的聊天程序设计.docVIP

  • 85
  • 0
  • 约2.84万字
  • 约 39页
  • 2017-01-30 发布于重庆
  • 举报
基于套接字的聊天程序设计

TCP/IP课程设计 题目: 基于套接字的聊天程序设计 院 系: 计算机与电子信息学院 专 业: 网络工程 班 级: 网络10-2 学 号: 10034120228 姓 名: 刘亮 日 期: 2012.9.25 二O一二年编制 课程设计任务书 一、设计题目 基于TCP和UDP套接字的聊天程序设计 二、设计目的: 理解客户机/服务器模型的工作原理; 掌握套接字的概念; 掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理和相关的WinSock API函数; 掌握基于TCP和UDP的程序设计方法。 三、设计内容: 基于TCP的应用编程:编写一个Client/Server程序对,服务器程序负责接收客户机进程的连接请求,并在服务器进程与客户机进程之间建立通信连接,然后接收客户机进程的传送数据并将其显示在服务器端,同时将欢迎信息发送给客户机进程,通信结束后关闭该客户机进程的连接;客户机进程首先提出对指定服务器的连接请求,建立连接后向服务器进程发送已经建立连接的数据信息,同时接收服务器进程发送过来的数据并显示在客户端。采用WinSock AIP实现代码。 基于UDP的应用编程:实现一个基于UDP的客户机/服务器程序,通过设定不同的命令行参数来确定应用进程的不同角色,即充当客户机进程还是服务器进程。当两个进程运行后,彼此之间可以轮流发送消息,对方接收后显示出来。 四、开发环境和语言: (1)网络:局域网; (2)开发环境:VS2005以上或VC++6.0以上版本; (3)开放语言:C/C++。 目录 1 通信原理分析 - 3 - 1.1 TCP协议 - 3 - 1.3 套接字的定义 - 4 - 1.4 客户机/服务器模式的运行原理 - 5 - 2 系统设计 - 5 - 2.1 基于TCP应用程序设计: - 5 - 2.2 基于UDP应用程序设计: - 5 - 3 详细设计 - 6 - 3.1基于TCP的应用程序设计: - 6 - 3.1.1 服务器设计: - 6 - 3.1.2 客户端设计: - 9 - 3.2基于UDP的应用程序设计: - 12 - 3.2.1 服务端设计: - 12 - 3.2.2 客户端设计: - 30 - 4 代码调试与运行结果 - 34 - 4.1基于TCP的应用程序调试结果: - 34 - 4.2基于UDP的运用程序调试结果: - 35 - 5 总结 - 38 - 5.1 设计不足 - 38 - 5.2 体会感想 - 39 - 1 通信原理分析 1.1 TCP协议 TCP协议是一种面向连接的、可靠的传输层协议,为应用层提供可靠、全双工的数据流传输服务,TCP报文封装在IP数据报中。在使用TCP进行通信时需要首先建立TCP连接后再能进行数据的传输,TCP连接建立为在不安全的IP网络中传输数据提供了数据完整的保障,在通信结束后要将该连接断开。 下面给出基于TCP的c/s通信工作模式: 服务器进程 客户端进程 1.2 UDP协议 UDP是一种无连接、尽最大努力交付的运输层协议,不提供流量控制和确认机制,数据报可能丢失、延迟、乱序到达。这就是的UDP在实现起来就较为简单,这种简单能很好的应用在实时通信服务中,如实时语音传输、实时视频通信等。 下面给出基于UDP的c/s通信工作模式: 进程A 进程B 1.3 套接字的定义 套接字我们可以认为就是通信的一端,其主要包括协议、ip、端口号。将两个套接字连接在一起就可以实现端到端的网络通信了。在套接字中封装了网络和传输层协议,从而为程序员屏蔽了底层通信的复杂性。 针对不同通信的需求,在TCP/IP协议中提供了3种不同套接字类型,分别为: 流式套接字(SOCK_STREAM)、数据保式套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)。 流式套接字(SOCK_STREAM) 提供面向连接的,可靠的数据传输服务,数据无差错,无重复的发送,且按发送的顺序接收,基于 TCP 协议。 数据保式套接字(SOCK_DGRAM) 提供无连接的服务,数据包以独立包形式发送,不提供无错误的保证,数据可能丢失或重复,且接收顺序混乱,基于 UDP 协议。 原始套接

文档评论(0)

1亿VIP精品文档

相关文档