全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MFC socket网络编程(流程示例)1.TCP流式套接字的编程步骤在使用之前须链接库函数:工程-设置-Link-输入ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。3、将套接字绑定到一个本地地址和端口上(bind)。4、将套接字设为监听模式,准备接收客户请求(listen)。5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。6、用返回的套接字和客户端进行通信(send/recv)。7、返回,等待另一客户请求。8、关闭套接字。客户端程序:1、加载套接字库2、创建套接字(socket)。3、向服务器发出连接请求(connect)。4、和服务器端进行通信(send/recv)。5、关闭套接字。服务器端代码如下:#include /加裁头文件#include /加载标准输入输出头文件void main()WORD wVersionRequested;/版本号WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );/1.1版本的套接字err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) return;/加载套接字库,加裁失败则返回if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( );return;/如果不是1.1的则退出SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);/创建套接字(socket)。SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);/转换Unsigned short为网络字节序的格式addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);/将套接字绑定到一个本地地址和端口上(bind)listen(sockSrv,5);/将套接字设为监听模式,准备接收客户请求(listen)。SOCKADDR_IN addrClient;/定义地址族int len=sizeof(SOCKADDR);/初始化这个参数,这个参数必须被初始化while(1)SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len); /accept的第三个参数一定要有初始值。/等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。/此时程序在此发生阻塞char sendBuf100;sprintf(sendBuf,Welcome %s to , inet_ntoa(addrClient.sin_addr);/用返回的套接字和客户端进行通信(send/recv)。send(sockConn,sendBuf,strlen(sendBuf)+1,0);char recvBuf100;recv(sockConn,recvBuf,100,0);printf(%sn,recvBuf);closesocket(sockConn);/关闭套接字。等待另一个用户请求客户端代码如下:#include #include void main()WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );/加载套接字库if ( err != 0 ) return;if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( );return;SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);/创建套接字(socket)。SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr();addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);/向服务器发出连接请求(connect)。char recvBuf100;/和服务器端进行通信(send/recv)。recv(sockClient,recvBuf,100,0);printf(%sn,recvBuf);send(sockClient,This is blues_j,strlen(This is blues_j)+1,0);closesocket(sockClient);/关闭套接字。WSACleanup();/必须调用这个函数清除参数2.UDP型套接字。服务器端(接收端)程序:1、创建套接字(socket)。2、将套接字绑定到一个本地地址和端口上(bind)。3、等待接收数据(recvfrom)。4、关闭套接字。客户端(发送端)程序:1、创建套接字(socket)。2、向服务器发送数据(sendto)。3、关闭套接字。服务器端代码:#include #include void main()WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) return;if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( );return;SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);SOCKADDR_IN addrClient;int len=sizeof(SOCKADDR);char recvBuf100;recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);printf(%sn,recvBuf);closesocket(sockSrv);WSACleanup();客户端代码:#include #include void main()WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) return;if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WSACleanup( );return;SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr();addrSrv.sin_family=AF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密云县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(达标题)
- 内蒙古自治区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(研优卷)
- 锡林郭勒盟农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(轻巧夺冠)
- 克州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(a卷)
- 甘孜藏族自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(夺冠)
- 2026年兰州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(模拟题)
- 北海市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(轻巧夺冠)
- 新余市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(满分必刷)
- 2026年临夏州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(巩固)
- 南平市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(夺分金卷)
- 3.2代数式的值-第1课时直接代入代数式求值课件人教版数学七年级上册
- 海岸滩涂生态修复施工指南
- 水浒传题目及答案100道
- 踝关节置换术护理
- 2025年执法证考试题库及答案
- 中小企业规章制度模板
- 麝香镇痛膏培训课件
- 班主任如何培训班干部
- 2024江苏农牧科技职业学院单招《语文》试卷带答案详解(预热题)
- 留学生数学试题及答案
- 加油站内部监督管理制度
评论
0/150
提交评论