基于socket通信系统设计

基于socket通信系统设计

ID:42594805

大小:46.14 KB

页数:7页

时间:2019-09-18

基于socket通信系统设计_第1页
基于socket通信系统设计_第2页
基于socket通信系统设计_第3页
基于socket通信系统设计_第4页
基于socket通信系统设计_第5页
资源描述:

《基于socket通信系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于Socket通信系统设计实验报告一、实验目的和要求 1、掌握VC++集成开发环境编写网络程序的方法;2、掌握客户/服务器(C/S)应用的工作方式;3、学习网络中进程之间通信的原理和实现方法;二、实验内容 所编写的程序应具有如下功能: 1. 具有点对点通信功能,服务器向客户端发送消息,客户端接收服务器发送的消息并显示; 2、具有广播功能,服务器能够向连接到服务器的所有客户端广播消息;  三、编程语言和环境 1. 编程语言C/C++; 2. 编程环境WindowsVisualStudio2010。四、Socket通信的实现WindowsSockets是一

2、套开放的、支持多种协议的Windows下的网络编程接口,利用Sockets套接字能够实现不同主机间的网络通信。Socket实际是在计算机中建立一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。目前常用的套接字类型是基于TCP/IP协议的流式套接字,其特点是提供一种可靠的、面向连接的数据传输服务。本实验采用基于TCP/IP协议的流式套接字实现发送方与接收方之间的安全通信。其程序实现流程如下图所示:1.服务器端首先调用socket函数来建立一个套接字;套接字创建成功后,调用bind函数将一个IP地址和端口号绑定到己经建立的socket

3、上;绑定完成之后,服务器等待接收客户端的连接请求,调用listen函数实现监听的功能;监听到连接请求之后,服务器调用accept函数生成一个新的套接口描述符,以接受客户的连接请求,之后调用send/receive函数在套接字上进行数据的读/写,直至完成交换;通信结束之后,调用close函数关闭套接字。服务器socket通信程序://创建socket套接字连接if(m_hSocket!=NULL){closesocket(m_hSocket);m_hSocket=NULL;}if(m_hSocket==NULL){m_hSocket=socket(AF_I

4、NET,SOCK_STREAM,0);ASSERT(m_hSocket!=NULL);}m_addr.sin_family=AF_INET;m_addr.sin_addr.S_un.S_addr=INADDR_ANY;m_addr.sin_port=htons(m_nPort);intret=0,error=0;ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr));if(ret==SOCKET_ERROR){TRACE("BindError:%d",(error=WSAGetLastError(

5、)));return;}ret=listen(m_hSocket,2);if(ret==SOCKET_ERROR){TRACE("ListenError:%d",(error=WSAGetLastError()));return;}SOCKETs=accept(m_hSocket,NULL,NULL);if(s==SOCKET_ERROR){TRACE("AcceptError:%d",(error=WSAGetLastError()));return;}//监听接收到信息charbuff[256];ret=recv(s,buff,256,0);

6、if(ret==0

7、

8、ret==SOCKET_ERROR){TRACE("Recvdataerror:%d",WSAGetLastError());return;}char*name=NULL;char*pass=NULL;intlen=0;len=buff[0];name=newchar[len+1];for(inti=0;i

9、/发送消息代码CStringstr;if(strcmp(name,"ware")!=0){str=_T("用户名不正确!");TRACE(_T("用户名不正确!"));}else{if(strcmp(pass,"11111")!=0){str=_T("用户密码不正确!");TRACE(_T("用户密码不正确!"));}}if(str.IsEmpty()){str=_T("我是马琰");str+=SendMsg;}char*buf=str.GetBuffer(0);ret=send(s,buf,str.GetLength(),0);if(ret!=

10、str.GetLength()){TRACE("Senddataerror:%d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。