东南大学计算机网络第四次实验报告

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

东南大学自动化学院

实验报告

课程名称:信息通信网络概论

第4次实验

实验名称:实验四﹑计算机网络通信应用程序设计

院(系):自动化专业:自动化

姓名:学号:

实验室:金智楼实验组别:

同组人员:实验时间:2016 年12 月20 日评定成绩:审阅教师:

目录

(一)基于TCP/IP的计算机网络通信应用程序设计

一.实验目的和要求 (3)

二.实验原理 (3)

三. 实验方案与实验步骤 (3)

四.实验设备与器材配置 (4)

五.实验记录 (4)

六.实验总结 (11)

附录:部分代码

(二)基于UDP/IP的计算机网络通信应用程序设计

一.实验目的和要求 (17)

二.实验原理 (17)

三. 实验方案与实验步骤 (17)

四.实验设备与器材配置 (18)

五.实验记录 (18)

六.实验总结 (25)

七.思考题或讨论题 (25)

附录:部分代码

(一)基于TCP/IP的计算机网络通信应用程序设计

一.实验目的和要求

1. 通过本实验课程的学习,使学生能够理解TCP协议通信的基本原理。

2.通过运用WinSock接口编写网络通信应用程序,掌握TCP网络应用程序架构的

设计思想。

3.学会设计利用TCP简单的应用层协议。

二.实验原理

TCP是面向连接的通信协议,TCP提供两台计算机之间的可靠无错的数据传输。应用程序利用TCP进行通信时,源和目标之间会建立一个虚拟连接。这个连接一但建立,两台计算机之间就可以把数据当作一个双向字节流进行交换。

三.实验方案与实验步骤

1、客户机/服务器工作流程

服务器端

1:创建套接字并将套接字绑定到一个本地地址和端口上(create)。

2:将套接字设为监听模式,准备接受客户请求(listen)。

3:等待客户请求到来;请求到来后,接受请求,返回一个新的对应于此次连

接的套接字(accept)。

4:用返回的套接字和客户端进行通信(send/receive)。

5:返回,等待另一客户请求。

6:关闭套接字。

客户端

1:创建套接字(create)。

2:向服务器发出连接请求(connect)。

3:和服务器进行通信(send/receive)。

4:关闭套接字。

(a )服务器工作流程(b )客户机工作流程

图3.1 客户机/服务器工作流程

2、 系统实现

图3.2 系统实现过程

四. 实验设备与器材配置

电脑、VC6.0

五. 实验记录

1、界面

(1)选择:客户机、服务器;

(2)输入:IP设置、端口设置、输入内容;

(3)输出显示:消息列表、发送和接收消息数目;

(4)按钮:连接/侦听、发送、清空、退出。

图5.1 界面设计

2、功能描述

(1)初始化:服务器点击侦听,客户机输入服务器IP后,点击连接实现服务器——客户机之间的连接通信。在界面上显示连接信息,服务器向客户机发送Welcome my friend!,客户机向服务器发送I am Paul。

图5.2 初始化

(2)客户机与服务器对话:服务器显示Server:+发送的消息,客户机显示Paul:+发送的信息。

图5.3客户机与服务器对话

(3)输入/n在聊天对话框画一个牛,输入/p画一个电话

图5.4 输入/p画一个电话

图5.5 输入/n画一个电话(4)输入/l会弹出一个对话框

图5.6 输入/l弹出一个对话框

(5)输入/r会打开一个windows资源管理器,并打开指定的路径,当前设置的路径为:C:/windows/media

图5.7 输入/r打开一个windows资源管理器

3、改进

(1)获取发送方主机名和发送时间

通过函数gethostname(hostname,sizeof(hostname))得到主机名,客户机获得服务器主机名为2013-20140524WQ,服务器获得客户机主机名为2013-20140524WQ(实验时使用同一台电脑进行调试,所以主机名是一样的),添加到接收信息列表中信息前面。

通过函数time()、localtime()获得当前系统时间,能够显示发送接收时间,格式为年/月/日时/分/秒,添加到接收信息列表中信息首部。

图5.8 获取主机名、添加发送时间

(2)自定义字符画:定义字符串TP_xin_str,输入/x时调用绘制一个小象

图5.9 自定义字符画

(3)自定义表情符号:输入/s时输出"难过(╥﹏╥)",输入/a时输出"生气(▼皿▼#)",输入/j时输出"惊讶(⊙o⊙)"等。

图5.10 自定义表情符号

(4)显示发送、接收消息总数

通过m_list.GetCount()函数实现对列表中发送和接收到的信息计数,并显示在界面上。初始化时,发送数和接收数均为1,清空列表后,相应的重置为0。

(5)清空列表

通过函数m_list.ResetContent()实现清空列表。

(6)添加背景图片、改变控件背景色、字体等。

上传bmp图片到Bitmap资源文件夹中,在OnPaint()中添加代码,通过不同图片的ID来设置不同的背景图片。

通过加入WM_CTLCOLOR消息,自动生成OnCtlColor()函数,利用SetBkMode()、SetTextColor()、SetBkColor()、CreateSolidBrush()、SetFont()等函数设置背景格式、改变控件背景色和字体大小颜色等。

图5.10 其他功能

六.实验总结

这次实验与实验三较为相似,在上次的基础上,增加了自定义字符画、符号表情等,进一步加深了对TCP/IP协议的理解,也能够根据生活中的聊天工具如QQ等,增加一些类似的功能,使其应用性更强。

相关文档
最新文档