欢迎来到天天文库
浏览记录
ID:22612906
大小:81.00 KB
页数:8页
时间:2018-10-30
《东南大学 计网 第三次试验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、东南大学自动化学院实验报告课程名称:信息通信网络概论第三次实验实验名称:基于客户/服务器模式的网络通信客户端和服务器端设计院(系):自动化专业:自动化姓名:耿佳辉学号:08011317实验室:403实验组别:同组人员:实验时间:2013年12月16日评定成绩:审阅教师:目录一.实验目的和要求………………………………………………3二.实验原理………………………………………………………3三.实验方案与实验步骤………………………………………3四.实验设备与器材配置…………………………………………3五.实验记录………………………………………………………3六.思考题或讨论题…
2、……………………………………………4实验报告内容:一.实验目的和要求1》在前面两个实验的基础上进一步了解网络编程的过程。2》掌握Windows环境下基于WinSock的编程方法和通讯实现。3》编写一个聊天程序,即以客户端和服务器的模式进行互发消息。利用客户端和服务器模式,编写一个点对点的,可以相互发送和接收消息的程序,也就是常说的聊天工具。该工具具有既可以作为服务器也可以做为客户端使用。当作为服务器时,能输入IP值和端口值,并能进行在线侦听,能接受连接请求,并实现消息互发。当作为客户端时,能输入服务器的IP值和端口值,并进行连接请求,能与服务器进行互发消息,聊天结束
3、后还要实现与服务器的断开的功能。二.实验原理三.实验方案与实验步骤使用的函数服务器端:•建立Socket:调用成员函数Socket()函数•绑定端口:调用成员函数bind()函数(注:对于MFC编程我们只要调用Create()函数就可以包括上面的两个函数)•监听:调用成员函数listen()函数CMySocketm_sConnectSocket;CMySocketm_sListenSocket;//是客户机还是服务器if(m_cmbType.GetCurSel()==1){//是服务器//创建于设置端口绑定的套接字m_sListenSocket.Create(m_n
4、ServPort);//开始侦听m_sListenSocket.Listen();}else{//是客户机//创建一个默认的套接字m_sConnectSocket.Create();////发出连接请求m_sConnectSocket.Connect(m_strServName,m_nServPort);}•监听:调用成员函数listen()函数•服务器端接受客户端的连接请求:调用成员函数accept()函数//对于服务器voidCgengjiahuiDlg::OnAccept(){//对于服务器//接受连接请求m_sListenSocket.Accept(m_sC
5、onnectSocket);}//接受连接请求//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////客户端:•建立客户端的Socket:调用socket()函数(注:我们也是调用Create()函数来完成Socket的建立的)•提出连接申请:调用成员函数connect()函数以上这些函数我们是在重载前面的虚拟函数时使用的,例如OnAccept()函
6、数中调用accept()函数等等。数据发送部分voidCgengjiahuiDlg::OnSendMsg(){intnLen;//消息长度intnSent;//已发送消息的长度//从对话框取回数据UpdateData(TRUE);//判断要发送的消息是否为空if(!m_strMsg.IsEmpty()){//获取消息的长度nLen=m_strMsg.GetLength();//发送消息nSent=m_sConnectSocket.Send(LPCTSTR(m_strMsg),nLen);//发送是否成功if(nSent!=SOCKET_ERROR){//将消息添加到
7、“已发送列表框”m_listSent.AddString(m_strMsg);//更新对话框UpdateData(FALSE);}else{AfxMessageBox("信息发送错误",MB_OK
8、MB_ICONSTOP);}接收,数据段处理部分char*pBuf=newchar[1025];//charpBuf[1025];intnBufSize=1024;intnReceived;CStringstrReceived;//接收消息nReceived=m_sConnectSocket.Receive(pBuf,nBufSize);//判断消息接收是否成功?if
此文档下载收益归作者所有