计算机网络课程设计报告姓名:学号:班级:指导老师:湖南科技大学计算机科学与工程学院2013 年 6 月实验一1. 实验名称: 网络聊天程序的设计与实现2. 实验目的: 通过本实验能够了解socket通信的原理并在此基础上编写一个聊天程序了解TCP/IP 的基础知识,发现TCP与 UDP的优缺点以及在网络通信的应用。3. 实验原理: 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的两个主机使用网络的核心部分进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。从 IP 层来说, 通信的两端是两个主机, IP 数据报的首部明确的标志了这两个主机的IP 地址。但是严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。根据应用程序的不同需求,运输层需要有两种不同的运输协议,即是面向连接的TCP和无连接的UDP。在使用这两个协议时运输层向高层用户屏蔽了下面的网络核心的细节,它使应用进程看见的就是好像在两个运输层实体间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别。当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。由于我在课程设计中采用的是UDP协议进行通信的,这里就只简述一下一些关于UDP的内容, UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠的交付,但在某些情况下UDP却是一种最有效的工作方式。为此当我们使用UTP协议使两个计算机中的进程要互相通信,不仅必需知道对方的IP 地址(为了找到对方的计算机),而且还要知道对方的端口号 (为了找到对方计算机中的应用进程)。我们的计算机通信时采用客户- 服务器方式。客户在发起通信请求时,必需先知道对方的服务器的IP 地址和端口号,因此通过IP 地址和端口号我们就能将两台主机连接起来,然后通过输入输出流将信息发送到对方的主机上。这样就能实现网络的聊天程序。4.. 流程图:开始加载套接字创建套接字绑定套接字向服务器发送申请向客户端发送信息接收客户端信息继续发送?关闭连接关闭套接字库是否结束开始加载套接...