东南大学-计网-第三次试验_第1页
东南大学-计网-第三次试验_第2页
东南大学-计网-第三次试验_第3页
东南大学-计网-第三次试验_第4页
东南大学-计网-第三次试验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业东南大学自动化学院实 验 报 告课程名称: 信息通信网络概论 第 三 次实验实验名称: 基于客户/服务器模式的网络通信客户端和服务器端设计 院 (系): 自动化 专 业: 自动化 姓 名: 耿佳辉 学 号: 实 验 室: 403 实验组别: 同组人员: 实验时间:2013年12月 16日评定成绩: 审阅教师: 目 录实验目的和要求3二实验原理 3三实验方案与实验步骤 3四实验设备与器材配置 3五实验记录 3六思考题或讨论题 4实验报告内容:实验目的和要求1在前面两个实验

2、的基础上进一步了解网络编程的过程。2掌握Windows环境下基于WinSock的编程方法和通讯实现。3编写一个聊天程序,即以客户端和服务器的模式进行互发消息。 利用客户端和服务器模式,编写一个点对点的,可以相互发送和接收消息的程序,也就是常说的聊天工具。该工具具有既可以作为服务器也可以做为客户端使用。 当作为服务器时,能输入IP值和端口值,并能进行在线侦听,能接受连接请求,并实现消息互发。 当作为客户端时,能输入服务器的IP值和端口值,并进行连接请求,能与服务器进行互发消息,聊天结束后还要实现与服务器的断开的功能。实验原理实验方案与实验步骤使用的函数 服务器端: 建立Socket:调用 成员函

3、数Socket()函数 绑定端口:调用成员函数bind()函数 (注:对于MFC编程我们只要调用Create()函数就可以包括上面的两个函数) 监听:调用成员函数listen()函数 CMySocket m_sConnectSocket;CMySocket m_sListenSocket;/是客户机还是服务器if(m_cmbType.GetCurSel()=1)/是服务器/创建于设置端口绑定的套接字m_sListenSocket.Create(m_nServPort);/开始侦听m_sListenSocket.Listen(); else/是客户机/创建一个默认的套接字m_sConnectSo

4、cket.Create();/发出连接请求m_sConnectSocket.Connect(m_strServName,m_nServPort); 监听:调用成员函数listen()函数 服务器端接受客户端的连接请求:调用成员函数accept() 函数 /对于服务器void CgengjiahuiDlg:OnAccept()/对于服务器/接受连接请求m_sListenSocket.Accept(m_sConnectSocket);/接受连接请求/ 客户端: 建立客户端的 Socket :调用 socket() 函数 (注:我们也是调用Create()函数来完成Socket的建立的) 提出连接申

5、请 :调用成员函数connect()函数以上这些函数我们是在重载前面的虚拟函数时使用的,例如OnAccept()函数中调用accept() 函数等等。数据发送部分void CgengjiahuiDlg:OnSendMsg() int nLen;/消息长度int nSent;/已发送消息的长度/从对话框取回数据UpdateData(TRUE);/判断要发送的消息是否为空if(!m_strMsg.IsEmpty()/获取消息的长度nLen = m_strMsg.GetLength();/发送消息nSent = m_sConnectSocket.Send(LPCTSTR(m_strMsg),nLen

6、);/发送是否成功if(nSent!=SOCKET_ERROR)/将消息添加到“已发送列表框”m_listSent.AddString(m_strMsg);/更新对话框UpdateData(FALSE);elseAfxMessageBox(信息发送错误,MB_OK|MB_ICONSTOP);接收,数据段处理部分char* pBuf = new char1025;/char pBuf1025;int nBufSize = 1024;int nReceived;CString strReceived;/接收消息nReceived = m_sConnectSocket.Receive(pBuf,nB

7、ufSize); /判断消息接收是否成功?if(nReceived!=SOCKET_ERROR)/保留接收消息的有效部分pBufnReceived = NULL;/将消息转化为CString对象strReceived = pBuf;/将消息添加到“已接收的消息”列表框m_listReceived.AddString(strReceived);/更新对话框/UpdateData(FALSE);elseAfxMessageBox(信息接收错误!,MB_OK|MB_ICONSTOP); delete pBuf;实验设备与器材配置实验环境visual c+ 6.0 MFC实验记录实验总结这个应用程序在

8、MFC WinSock编程中很有代表性,可以用于两台计算机之间进行字符串传输;创建思路简单,就是利用MFC AppWizard生成程序框架,通过对CAsynSocket类增加一个指向对话框类得指针,对CAsynSocket类中的一些事件处理函数进行重载,使这些套接字事件发生时,应用程序能够自动到对话框类中寻找合适的函数执行。这个聊天室应用程序是基于客户服务器模型的,一个服务器只能支持一个客户,因此它实际上是一个基于“点对点”模型的应用程序。通过这个应用程序,用户可以在两台计算机之间进行字符串传输即可以为两个人进行网上聊天提供服务,而且两个人的传输的字符串被保留在程序的列表框中,并且进行分类,分

9、为传送和接收的字符串。思考题或讨论题本次实验所涉及的“实体”是什么?实体间通过什么方式建立协议?答:实体,可以理解为具体的设备,计算机之类的终端、路由器交换机之类的连接设备都是实体。本次实验中实体即客户端和服务器,是通过创建套接字,服务器端侦听,客户端发送连接请求,然后服务器和客户端连接,即客户端-服务器方式建立协议. TCP/IP应用服务采用客户机/服务器工作模式,服务器端启动守护进程,等待客户端的请求;服务器对应客户端的请求,派生子进程与客户进程进行数据通信,提供服务。服务和协议的区别与联系?本次实验的协议过程(即客户-服务器方式)是怎样建立的?用哪那些服务?答:首先,协议的实现保证了能够

10、向上一层提供服务,使用本层服务的实体只能看见服务而无法看见下面的协议,协议是水平的。下面的协议对上面的实体是透明的 其次,协议是“水平的”即协议是控制对等实体之间通信的规则但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称之为服务,服务是上下的。只有那些能够被高一层实体看得见的功能才能被称之为“服务”TCP/IP应用服务采用客户机/服务器工作模式,服务器端启动守护进程,等待客户端的请求;服务器对应客户端的请求,派生子进程与客户进程进行数据通信,提供服务。(1)服务器(HostA)首先要启动应用程序服务进程(守护进程Server),等待客户端的请求

11、。(2)当服务进程Server接收到客户端HostB的请求时,派生一个子进程(Child1)与HostB进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。(3)当服务进程Server接收到客户端HostC的请求时,派生一个子进程(Child2)与HostC进行交互,实现数据通信,同时守护进程Server继续等待客户端的请求。本次实验客户-服务器协议主要提供发送消息和接收消息的服务。本次实验的协议提供了什么服务?试想,用此协议还可以提供怎样的服务?这种服务在自动化学科领域的意义是什么?(1)简单的信息传递,即使用套接字处理消息的发送和接收。(2)处理文件的传输。传输都是基于文本流进行的,协议提供了接收文本流和发送文本流的服务,因此,可以进行文本传输。以上两种服务,都是由程序员自定义进行的。(3)在更高一层上,该协议还可以提供很多的高端服务:对于自动化的意义:TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论