计算机网络课程设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络课程设计报告

姓名:王齐

学号:1105010404

班级:计算机四班

指导老师:张会福

湖南科技大学计算机科学与工程学院

2014年02月

实验一:

一、设计题目

网络聊天程序的设计与实现

二、实验目的

1、加深对计算机网络通信系统工作原理的理解

通过编写计算机程序实现、模拟网络的某些功能,使自己理解并掌握计算机网络基本工作原理及过程。

2、提高网络编程和应用的能力

提高实际编程能力和灵活运用所学知识解决问题的能力。培养调查研究、查阅技术文献、资料、手册及编写技术文档的能力,理论运用于实践的能力。

三、课程设计要求

1、仔细分析每一个实验的具体内容、步骤和要求,按设计要求完成任务。

2、程序设计需要完成的程序流程图、说明文档和源程序清单。

3、提交课程设报告(包含课程设计名称、课程设计题目、课程设计内容、课程设计步骤、调试过程、课程设计结果以及结果分析、心得体会)、程序源文件、可执行文件。

四、程序原理

在计算机通信系统中,有两种通信方式:面向连接的TCP和面向报文的UDP。

TCP:传输控制协议。TCP提供可靠交付的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复、并且按序到达。所以服务器和客户端的通讯使用TCP来完成。确保服务器作为“中转站”能够得到、存储、转发正确的客户信息。

UDP:用户数据报协议。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。因为客户端之间的通讯(聊天)对数据正确性的要求不是太高,偶尔出错也不会有太大的影响。

本课程设计采用TCP方式来实现网络聊天程序。

五、课程设计步骤

1、TCP网络聊天程序

TCP传输控制提供可靠的,有保证的通信质量,是面向连接的通信。因此,在通信之前,通信双方就得采用建立连接。TCP通信采取C/S(客户机/服务器)模式。需要分别编写客户端程序和服务器端程序。

1)服务器端程序编写步骤:

a)加载套接字库,创建套接字(WSAStartup()/socket());

b)绑定套接字到一个IP地址和一个端口上(bind());

c)将套接字设置为监听模式等待连接请求(listen());

d)请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

e)用返回的套接字和客户端进行通信(send()/recv());

f)返回,等待另一连接请求;

g)关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

2)客户端程序编写步骤:

a)加载套接字库,创建套接字(WSAStartup()/socket());

b)向服务器发出连接请求(connect());

c)和服务器端进行通信(send()/recv());

d)关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

2、UDP网络聊天程序

与TCP不同,UDP在通信时并不要双方建立连接,它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和OICQ就是使用的UDP协议。因此,本设计同样采用UDP连接方式。

程序编写步骤:

a)加载套接字库,创建套接字(WSAStartup()/socket());

b)绑定套接字到一个IP地址和一个端口上(bind());

c)发送和接收数据(sendto()/recvfrom());

d)关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

六、程序流程图

TCP

七.实验总结(错误与解决方法)

1.必须先初始化Winsock DLL库,否则会显示错误代码:

WSASYSNOTREADY 网络通信依赖的网络子系统还没有准备好。WSAVERNOTSUPPORTED 所需的Windows Sockets API的版本未由特定的Windows Sockets实现提供。

2.窗口接收到数据包含“烫烫烫”,解决办法即用memset函数初始化数组:

memset(sendBuf,0,sizeof(sendBuf));

memset(recvBuf,0,sizeof(recvBuf));

3.使用该程序时注意先打开服务器,再打开客户端,否则无法正确连接。

4.注意引入ws2_32.lib库文件。

实验二:

一.题目:PING程序的设计与实现

二.实验目的:

PING程序是我们使用的比较多的用于测试网络连通性的程序。PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。

三.实验原理:

ping的原理: Ping命令的主要作用是检测网络上主机的状态。要是在几年前,我们还可以下如此断言,如果不能Ping通某台主机,那么也就无法Telnet或者FTP到这台主机,但随着互联网的安全意识的增加,出现了访问控制清单的路由器和防火墙,由于ICMP报文是在IP数据包中被传输的,而到达一台主机不仅取决于IP层是否到达,还取决于使用何种协议和端口。

四. PING程序的实现过程

要实现ping程序,需要实现以下步骤:

1.创建协议类型为IPPROTO_ICMP的原始套接字,设置套接字属性。

2.创建并初始化ICMP封包。

3.调用sendto函数向远程主机发送ICMP请求。

4.调用recfrom函数接受ICMP响应

相关文档
最新文档