东南大学计算机网络第四次实验报告.docx
- 文档编号:26494938
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:12
- 大小:19.68KB
东南大学计算机网络第四次实验报告.docx
《东南大学计算机网络第四次实验报告.docx》由会员分享,可在线阅读,更多相关《东南大学计算机网络第四次实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
东南大学计算机网络第四次实验报告
东南大学自动化学院
实验报告
课程名称:
信息通信网络概论
第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:
关闭套接字。
图客户机/服务器工作流程
2、系统实现
图系统实现过程
四.实验设备与器材配置
电脑、
五.实验记录
1、界面
(1)选择:
客户机、服务器;
(2)输入:
IP设置、端口设置、输入内容;
(3)输出显示:
消息列表、发送和接收消息数目;
(4)按钮:
连接/侦听、发送、清空、退出。
图界面设计
2、功能描述
(1)初始化:
服务器点击侦听,客户机输入服务器IP后,点击连接实现服务器——客户机之间的连接通信。
在界面上显示连接信息,服务器向客户机发送Welcomemyfriend!
,客户机向服务器发送IamPaul。
图初始化
(2)客户机与服务器对话:
服务器显示Server:
+发送的消息,客户机显示Paul:
+发送的信息。
图客户机与服务器对话
(3)输入/n在聊天对话框画一个牛,输入/p画一个电话
图输入/p画一个电话
图输入/n画一个电话
(4)输入/l会弹出一个对话框
图输入/l弹出一个对话框
(5)输入/r会打开一个windows资源管理器,并打开指定的路径,当前设置的路径为:
C:
/windows/media
图输入/r打开一个windows资源管理器
3、改进
(1)获取发送方主机名和发送时间
通过函数gethostname(hostname,sizeof(hostname))
通过函数time()、localtime()获得当前系统时间,能够显示发送接收时间,格式为年/月/日时/分/秒,添加到接收信息列表中信息首部。
图获取主机名、添加发送时间
(2)自定义字符画:
定义字符串TP_xin_str,输入/x时调用绘制一个小象
图自定义字符画
(3)自定义表情符号:
输入/s时输出"难过(╥﹏╥)",输入/a时输出
"生气(▼皿▼#)",输入/j时输出"惊讶(⊙o⊙)"等。
图自定义表情符号
(4)显示发送、接收消息总数
通过()函数实现对列表中发送和接收到的信息计数,并显示在界面上。
初始化时,发送数和接收数均为1,清空列表后,相应的重置为0。
(5)清空列表
通过函数()实现清空列表。
(6)添加背景图片、改变控件背景色、字体等。
上传bmp图片到Bitmap资源文件夹中,在OnPaint()中添加代码,通过不同图片的ID来设置不同的背景图片。
通过加入WM_CTLCOLOR消息,自动生成OnCtlColor()函数,利用SetBkMode()、SetTextColor()、SetBkColor()、CreateSolidBrush()、SetFont()等函数设置背景格式、改变控件背景色和字体大小颜色等。
图其他功能
六.实验总结
这次实验与实验三较为相似,在上次的基础上,增加了自定义字符画、符号表情等,进一步加深了对TCP/IP协议的理解,也能够根据生活中的聊天工具如QQ等,增加一些类似的功能,使其应用性更强。
附录:
(部分代码)
1、获取对方主机信息添加发送接收时间(客户端和服务器类似,在此只贴出服务器代码)
voidCProject2Dlg:
:
OnServerReceive()
{
CStringmDay;
CStringmTime;
CStringttime;
time_tt1;
t1=time(NULL);)",
"/\\____/",
"/|(\\|(",
"^\\/___\\/\\|",
"|__||__|-“"
};
intTP_xin_int=7;
for(inti=0;i { (TP_xin_str[i]); } } 2、自定义表情符号 switch (1)) { case'm': ShellExecute(NULL,NULL,"老人与海.mp3","",NULL,SW_SHOWMAXIMIZED);returnTRUE; case'q': AfxMessageBox("Quit");returnTRUE; case'l': AfxMessageBox("开心(*^ω^*)");returnTRUE; case's': AfxMessageBox("难过(╥﹏╥)");returnTRUE; case'a': AfxMessageBox("生气(▼皿▼#)");returnTRUE; case'j': AfxMessageBox("惊讶(⊙o⊙)");returnTRUE; case'c': AfxMessageBox("CircleOoOoOo");returnTRUE; case'r': 建套接字并将套接字绑定到一个本地地址和端口上(create); 2.等待接收数据(ReceiveFrom); 3.关闭套接字。 客户端 1.创建套接字(create); 2.向服务器发送数据(sendto); 3.关闭套接字。 一、实验设备与器材配置 电脑、 二、实验记录 1、界面 (1)输入: IP设置、端口设置、输入内容; (2)输出显示: 消息列表; (3)按钮: 发送、清空列表、导出消息记录、退出。 图界面设计 2、功能描述 (1)初始化: 客户机输入服务器IP后,点击开始聊天。 (a)客户端初始化 (b)服务器初始化 图初始化 (2)客户机与服务器对话: 此时服务器并没有填写客户机的IP地址,能够接收到客户机发送的消息,并且获得发送方IP。 (a)客户机端界面 (b)服务器端界面 图客户机与服务器对话 (a)客户机端界面 (b)服务器端界面 图客户机与服务器对话 (3)输入/n在聊天对话框画一个牛,输入/p画一个电话 图字符画 (4)输入/r会打开一个windows资源管理器,并打开指定的路径,当前设置的路径为: C: /windows/media 图输入/r打开一个windows资源管理器 3、改进 (1)添加发送时间 通过函数time()、localtime()获得当前系统时间,能够显示发送接收时间,格式为年/月/日时/分/秒,添加到接收信息列表中信息首部。 (2)清空列表 通过函数()实现清空列表。 (3)导出消息记录 通过函数()把列表中的信息写入字符串中,再利用文件读写函数fopen()、fwrite()、fclose()将字符串写入指定文件中。 图导出消息记录到txt中 (4)输入/e打开指定网址,输入/t打开指定图片 图输入指定字符执行相应的操作 (5)添加背景图片、改变控件背景色、字体等。 方法与实验 (一)中相同,不再赘述。 图其他功能 三、实验总结 在原有程序的基础上,增加了保存消息记录、自定义协议等功能,同时修改了界面,但是对于MFC中按钮的界面设置仍然不太了解,尝试直接在WM_CTLCOLOR消息自动生成OnCtlColor()函数中进行设置,没有达到预期效果,希望在以后的学习过程中能够学到并解决这个问题。 通过这次实验,我对TCP协议和UDP协议各自的特点有了一定理解,能够判断在不同场合下应使用哪个协议,掌握并理解了它们的区别和各自的优缺点。 四、思考题或讨论题 1、结合所学知识与实验中的感受,说明TCP协议和UDP协议各自的优缺点。 在工业控制的现场中,要通过网络控制一台焊接机器人的运行,要求控制数据能正确传输。 试分析说明,采用哪种运输层协议比较好? 另外,网络中使用的IP电话服务采用的是哪种运输层协议? 为什么要采用这种协议? 并说明理由。 (1)TCP协议和UDP协议各自的优缺点: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换;UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程;tcp需要首先建立连接,而udp只要绑定端口发送就行,tcp如果建立连接以后,能够保证传送的数据包次序,而udp则不能保证数据包到达的先后次序,甚至会丢包;编程时,TCP面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。 UDP它是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。 任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。 根本不关心对方是否存在,是否发送了数据。 它的特点是通讯速度比较快。 (2)应采用TCP协议,TCP-有连接,过程为可靠连接,不会丢失数据,能保证数据正确传输。 (3)网络中使用的IP电话服务采用的是UDP协议,IP电话是实时传输,必须使用UDP。 UDP不保证可靠交付,但UCP比TCP的开销要小很多,IP电话接受这样的服务质量就可以使用UDP。 2、思考和调研目前常用的通信工具之一: QQ的基本实现方式。 考虑其各种不同的应用可能采取的是TCP和UDP中的哪种协议。 如果需要对本实验结果进行进一步改进,有哪些想法。 附录: (部分代码) 1、清空列表 voidCUDPprojectDlg: : OnDelete() { xt","a+");//打开指定目录 fwrite(content,strlen(content),1,fp);//写入字符串 fclose(fp); } 2、自定义指定操作 voidCUDPprojectDlg: : DoAction(LPVOIDlParam,charstr) { CUDPprojectDlg*pDlg=(CUDPprojectDlg*)lParam; switch(str) { case'n': pDlg->DrawNiu();break; case'z': pDlg->DrawPig();break; case'p': pDlg->DrawPhone();break; case'e': ShellExecute(NULL,"open",//打开网址 case't': ShellExecute(NULL,"open","F: /",NULL,NULL,SW_SHOWNORMAL);break; //打开图片 case'r': ShellExecute(NULL,"explore","C: /windows/media",NULL,NULL,SW_SHOWNORMAL);break; default: pDlg->("该字母对应操作尚未定义! ");break; } } 3、设置控件背景透明 HBRUSHCUDPprojectDlg: : OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor) { HBRUSHhbr=CDialog: : OnCtlColor(pDC,pWnd,nCtlColor); //TODO: ChangeanyattributesoftheDChere if((pWnd->GetDlgCtrlID())==IDC_EDIT_OUTMSG)//输入框背景 { HBRUSHbrush=CreateSolidBrush(RGB(255,255,255)); return(HBRUSH)brush; } elseif(nCtlColor==CTLCOLOR_STATIC)//对所有静态文本控件的设置 { pDC->SetBkMode(TRANSPARENT);//设置背景为透明 return(HBRUSH): : GetStockObject(NULL_BRUSH); } else returnCDialog: : OnCtlColor(pDC,pWnd,nCtlColor); //TODO: Returnadifferentbrushifthedefaultisnotdesired returnhbr; } CRectrcStatic; this->GetDlgItem(IDC_STATIC_STATE)->GetWindowRect(&rcStatic); ScreenToClient(&rcStatic); InvalidateRect(&rcStatic);//重新绘制 this->GetDlgItem(IDC_EDIT_PORT)->EnableWindow(TRUE); this->SetDlgItemText(IDC_CONNECT,"开始聊天"); this->SetDlgItemText(IDC_STATIC_STATE,"请进行初始化设置@_@"); this->GetDlgItem(IDC_EDIT_OUTMSG)->EnableWindow(FALSE); return;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 计算机网络 第四 实验 报告