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

上传人:夏** 文档编号:486242845 上传时间:2023-07-28 格式:DOC 页数:14 大小:106.50KB
返回 下载 相关 举报
东南大学计算机网络第四次实验报告_第1页
第1页 / 共14页
东南大学计算机网络第四次实验报告_第2页
第2页 / 共14页
东南大学计算机网络第四次实验报告_第3页
第3页 / 共14页
东南大学计算机网络第四次实验报告_第4页
第4页 / 共14页
东南大学计算机网络第四次实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《东南大学计算机网络第四次实验报告》由会员分享,可在线阅读,更多相关《东南大学计算机网络第四次实验报告(14页珍藏版)》请在金锄头文库上搜索。

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

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

3、套接字并将套接字绑定到一个本地地址和端口上( 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.3

5、 客户机与服务器对话( 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-2014

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

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

8、SetBkColor() 、CreateSolidBrush() 、SetFont() 等函数设置背景格式、 改变控件背景色和字体大小颜色等。图 5.10 其他功能六 实验总结这次实验与实验三较为相似,在上次的基础上,增加了自定义字符画、符号表情等,进一步加深了对 TCP/IP协议的理解,也能够根据生活中的聊天工具如QQ等,增加一些类似的功能,使其应用性更强。附录:(部分代码)1、获取对方主机信息添加发送接收时间 (客户端和服务器类似, 在此只贴出服 务器代码)void CProject2Dlg:OnServerReceive()CString mDay;CString mTime;CStri

9、ng ttime;time_t t1;t1 = time(NULL); / 机器时间struct tm *p;p = localtime(&t1); / 转换为本地时间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_con

10、nectsocket.Receive(buf,MAX_BUFFER,0); if(ret!=SOCKET_ERROR) gethostname(hostname,sizeof(hostname);/ 获取对方主机名 m_receive+=1;/ 接收消息数加 1bufret=NULL; nRev=buf; nRet+=mDay+mTime+ +hostname+ ;/ 添加发送时间和主机名 nret+=CLIENT;nret+=:;len=nret.GetLength();nret=nRev.Right( ( (nRev.GetLength()-len ) ); if(nret.GetAt(0

11、)=/) m_list_msg.AddString(nRet); Act=DoAction(nret); if(Act=FALSE) nRet+=nRev; m_list_msg.AddString(nRet); i=m_list_msg.GetCount(); m_list_msg.SetCurSel(i-1); m_list_msg.SetCurSel(-1);UpdateData(FALSE);elseAfxMessageBox(消息接收错误!);2、显示发送、接收消息总数void CProject2Dlg:OnSendMsg()/ TODO: Add your control noti

12、fication handler code here CString buf; int nret;BOOL Act=FALSE;int nLen,i;UpdateData(TRUE); m_outmsg.TrimLeft(); if(m_outmsg.IsEmpty()AfxMessageBox(对不起,不能发送空消息!);return; if(m_server=TRUE) buf+=SERVER; buf+=:;elsebuf+=CLIENT; buf+=:;buf+=m_outmsg;nLen=buf.GetLength();nret = m_connectsocket.Send(LPCT

13、STR)buf,nLen); if(nret!=SOCKET_ERROR) m_send+=1;/ 发送消息数加 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);elseAfxMessageBox(消息发送失败!:();3、清空列表vo

14、id CProject2Dlg:OnRemoveall()/ TODO: Add your 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=IIIIIIIIIIIIII/|A / / ,. ) ,_/ ,|(,(_(II/ | ,II;int TP_xin_int=7;for(int i=0;iTP_xin_int;i+)m_list_msg.AddString(TP_xin_stri);5、自定义表情符号switch(act.GetAt(1)casem:ShellExecute(NULL,NULL,老人与海.mp3,wmplayer.exe,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号