ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:23.55KB ,
资源ID:7489060      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7489060.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东南大学计算机网络第四次实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、东南大学计算机网络第四次实验报告东南大学自动化学院实 验 报 告课程名称: 信息通信网络概论 第4次实验实验名称: 实验四计算机网络通信应用程序设计 院 (系): 自动化 专 业: 自动化 姓 名: 学 号: 实 验 室: 金智楼 实验组别: 同组人员: 实验时间: 2016 年 12 月 20 日评定成绩: 审阅教师: (一)基于TCP/IP的计算机网络通信应用程序设计一实验目的和要求 3二实验原理 3三. 实验方案与实验步骤 3四实验设备与器材配置 4五实验记录 4六实验总结 11附录:部分代码(二)基于UDP/IP的计算机网络通信应用程序设计一实验目的和要求 17二实验原理 17三. 实

2、验方案与实验步骤 17四实验设备与器材配置 18五实验记录 18六实验总结 25七思考题或讨论题 25附录:部分代码(一)基于TCP/IP的计算机网络通信应用程序设计一 实验目的和要求1. 通过本实验课程的学习,使学生能够理解TCP协议通信的基本原理。 2.通过运用WinSock接口编写网络通信应用程序,掌握TCP网络应用程序架构的设计思想。3.学会设计利用TCP简单的应用层协议。二 实验原理TCP是面向连接的通信协议,TCP提供两台计算机之间的可靠无错的数据传输。应用程序利用TCP进行通信时,源和目标之间会建立一个虚拟连接。这个连接一但建立,两台计算机之间就可以把数据当作一个双向字节流进行交

3、换。三 实验方案与实验步骤1、 客户机/服务器工作流程服务器端1:创建套接字并将套接字绑定到一个本地地址和端口上(create)。2:将套接字设为监听模式,准备接受客户请求(listen)。3:等待客户请求到来;请求到来后,接受请求,返回一个新的对应于此次连接的套接字(accept)。4:用返回的套接字和客户端进行通信(send/receive)。5:返回,等待另一客户请求。6:关闭套接字。客户端1:创建套接字(create)。2:向服务器发出连接请求(connect)。3:和服务器进行通信(send/receive)。4:关闭套接字。图3.1 客户机/服务器工作流程2、 系统实现图3.2 系

4、统实现过程四 实验设备与器材配置电脑、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.

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-201405

6、24WQ(实验时使用同一台电脑进行调试,所以主机名是一样的),添加到接收信息列表中信息前面。通过函数time()、localtime()获得当前系统时间,能够显示发送接收时间,格式为年/月/日 时/分/秒,添加到接收信息列表中信息首部。图5.8 获取主机名、添加发送时间(2) 自定义字符画:定义字符串TP_xin_str,输入/x时调用绘制一个小象图5.9 自定义字符画(3) 自定义表情符号:输入/s时输出难过(),输入/a时输出生气(皿#),输入/j时输出惊讶(o)等。图5.10 自定义表情符号(4) 显示发送、接收消息总数通过m_list.GetCount()函数实现对列表中发送和接收到的

7、信息计数,并显示在界面上。初始化时,发送数和接收数均为1,清空列表后,相应的重置为0。(5) 清空列表通过函数m_list.ResetContent()实现清空列表。(6) 添加背景图片、改变控件背景色、字体等。上传bmp图片到Bitmap资源文件夹中,在OnPaint()中添加代码,通过不同图片的ID来设置不同的背景图片。通过加入WM_CTLCOLOR消息,自动生成OnCtlColor()函数,利用SetBkMode()、SetTextColor()、SetBkColor()、CreateSolidBrush()、SetFont()等函数设置背景格式、改变控件背景色和字体大小颜色等。图5.1

8、0 其他功能六 实验总结这次实验与实验三较为相似,在上次的基础上,增加了自定义字符画、符号表情等,进一步加深了对TCP/IP协议的理解,也能够根据生活中的聊天工具如QQ等,增加一些类似的功能,使其应用性更强。附录:(部分代码)1、获取对方主机信息添加发送接收时间(客户端和服务器类似,在此只贴出服务器代码)void CProject2Dlg:OnServerReceive() CString mDay; CString mTime; CString ttime; time_t t1; t1 = time(NULL); /机器时间 struct tm *p; p = localtime(&t1);

9、 /转换为本地时间 mDay.Format(%4d/%2d/%2d,1900+p-tm_year,1+p-tm_mon,p-tm_mday); mTime.Format(%3d:%2d:%2d,p-tm_hour,p-tm_min,p-tm_sec); BOOL Act=FALSE; CString nRev,nret,nRet; char bufMAX_BUFFER+1; int ret,i,len; char hostname100; ret=m_connectsocket.Receive(buf,MAX_BUFFER,0); if(ret!=SOCKET_ERROR) gethostna

10、me(hostname,sizeof(hostname);/获取对方主机名 m_receive+=1;/接收消息数加1 bufret=NULL; nRev=buf; nRet+=mDay+mTime+ +hostname+ ;/添加发送时间和主机名 nret+=CLIENT; nret+=:; len=nret.GetLength(); nret=nRev.Right( ( (nRev.GetLength()-len ) ); if(nret.GetAt(0)=/) m_list_msg.AddString(nRet); Act=DoAction(nret); if(Act=FALSE) nR

11、et+=nRev; m_list_msg.AddString(nRet); i=m_list_msg.GetCount(); m_list_msg.SetCurSel(i-1); m_list_msg.SetCurSel(-1); UpdateData(FALSE); else AfxMessageBox(消息接收错误!);2、 显示发送、接收消息总数void CProject2Dlg:OnSendMsg() / TODO: Add your control notification handler code here CString buf; int nret; BOOL Act=FALSE

12、; int nLen,i; UpdateData(TRUE); m_outmsg.TrimLeft(); if(m_outmsg.IsEmpty() AfxMessageBox(对不起,不能发送空消息!); return; if(m_server=TRUE) buf+=SERVER; buf+=:; else buf+=CLIENT; buf+=:; buf+=m_outmsg; nLen=buf.GetLength(); nret = m_connectsocket.Send(LPCTSTR)buf,nLen); if(nret!=SOCKET_ERROR) m_send+=1;/发送消息数

13、加1 if(m_outmsg.GetAt(0)=/) Act=DoAction(m_outmsg); if(Act=FALSE) m_list_msg.AddString(LPCTSTR)buf); m_outmsg.Empty(); i=m_list_msg.GetCount(); m_list_msg.SetCurSel(i-1); m_list_msg.SetCurSel(-1); UpdateData(FALSE); else AfxMessageBox(消息发送失败! :();3、 清空列表void CProject2Dlg:OnRemoveall() / TODO: Add you

14、r control notification handler code here m_list_msg.ResetContent();/清空列表 m_receive=0;/重置接收消息数 m_send=0;/重置发送消息数 UpdateData(FALSE);4、 自定义字符画void CProject2Dlg:DrawXin() CString TP_xin_str7= _ _ , / / , ,-( . ) , / _ _/ , /| ( |( , /_ / | , |_| |_|-“ ; int TP_xin_int=7; for(int i=0;iCreateFont(16,0,0,0

15、,FW_SEMIBOLD,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,Arial); if(pWnd = this)/改变整个界面背景色 HBRUSH brush=CreateSolidBrush(RGB(199,237,204); return (HBRUSH)brush; switch(nCtlColor) case CTLCOLOR_STATIC: /对所有静态文本控件的设置 pDC-SetBkMode(TRANSPAREN

16、T); /设置背景为透明 pDC-SetTextColor(RGB(255,255,0); /设置字体颜色 pWnd-SetFont(cFont); /设置字体 HBRUSH B = CreateSolidBrush(RGB(199,237,204); /创建画刷 return (HBRUSH) B; /返回画刷句柄 break; default: return CDialog:OnCtlColor(pDC,pWnd, nCtlColor); / TODO: Return a different brush if the default is not desired return hbr;(二

17、)基于UDP/IP的计算机网络通信应用程序设计一、 实验目的和要求1 通过本实验课程的学习,使学生能够理解UDP协议通信的基本原理。 2 通过运用WinSock接口编写网络通信应用程序,掌握UDP网络应用程序架构的设计思想。3 学会设计利用UDP简单的应用层协议。二、 实验原理UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。简单地说,如果一个主机向另外一台主机发送数据,这一数据就会立即发出,而不管另外一台主机是否已准备接收数据。如果另外一台主机收到了数据,它不会确认收到与否。三、 实验方案与实验步骤服务器端1.创建套接字并将套接字绑定到一

18、个本地地址和端口上(create);2.等待接收数据(ReceiveFrom);3.关闭套接字。客户端1.创建套接字(create);2.向服务器发送数据(sendto);3.关闭套接字。四、 实验设备与器材配置电脑、VC6.0五、 实验记录1、 界面(1) 输入:IP设置、端口设置、输入内容;(2) 输出显示:消息列表;(3) 按钮:发送、清空列表、导出消息记录、退出。图5.1 界面设计2、 功能描述(1) 初始化:客户机输入服务器IP223.3.202.241后,点击开始聊天。(a)客户端初始化(b)服务器初始化图5.2 初始化(2) 客户机与服务器对话:此时服务器并没有填写客户机的IP地

19、址,能够接收到客户机发送的消息,并且获得发送方IP。但是不能发送消息给客户机,只有填写客户机IP223.3.210.241后,才能发送消息给客户机。(a)客户机端界面(b)服务器端界面图5.3 客户机与服务器对话(a)客户机端界面(b)服务器端界面图5.3客户机与服务器对话(3)输入/n在聊天对话框画一个牛,输入/p画一个电话图5.4 字符画(4)输入/r会打开一个windows资源管理器,并打开指定的路径,当前设置的路径为:C:/windows/media图5.7 输入/r打开一个windows资源管理器3、 改进(1)添加发送时间通过函数time()、localtime()获得当前系统时间

20、,能够显示发送接收时间,格式为年/月/日 时/分/秒,添加到接收信息列表中信息首部。(2)清空列表通过函数m_list.ResetContent()实现清空列表。(3)导出消息记录通过函数m_list_msg.GetText()把列表中的信息写入字符串中,再利用文件读写函数fopen()、fwrite()、fclose()将字符串写入指定文件中。图5.8 导出消息记录到txt中(4)输入/e打开指定网址,输入/t打开指定图片图5.9 输入指定字符执行相应的操作(5)添加背景图片、改变控件背景色、字体等。方法与实验(一)中相同,不再赘述。图5.10 其他功能六、 实验总结在原有程序的基础上,增加

21、了保存消息记录、自定义协议等功能,同时修改了界面,但是对于MFC中按钮的界面设置仍然不太了解,尝试直接在WM_CTLCOLOR消息自动生成OnCtlColor()函数中进行设置,没有达到预期效果,希望在以后的学习过程中能够学到并解决这个问题。通过这次实验,我对TCP协议和UDP协议各自的特点有了一定理解,能够判断在不同场合下应使用哪个协议,掌握并理解了它们的区别和各自的优缺点。七、 思考题或讨论题1、 结合所学知识与实验中的感受,说明TCP协议和UDP协议各自的优缺点。在工业控制的现场中,要通过网络控制一台焊接机器人的运行,要求控制数据能正确传输。试分析说明,采用哪种运输层协议比较好?另外,网络中使用的IP电话服务采用的是哪种运输层协议?为什么要采用这种协议?并说明理由。(1) TCP协议和UDP协议各自的优缺点:TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换;UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1