



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 豪华车维修厂2025年专项计划
- 人教版三年级上册数学课堂计划
- 篮球战术训练课件
- 业务合作伙伴互惠协议
- 篮球场裁判知识培训课件
- 那一次重要的比赛事件作文15篇范文
- 2024-2025学年广东省深圳市盐田高级中学等校高二5月联考地理试题
- 春天的脚步描绘家乡美景的写景作文4篇
- 管道滑脱知识培训小结课件
- 技术规范手册编制工具及编写指南
- 专科医院介绍
- 粉煤灰运输应急事故处理流程
- 江苏省苏州市2025年中考语文试卷(含答案解析)
- 电商直播模式下消费者农产品购买意愿影响因素研究-以赣南脐橙为例
- 开封产城融合投资集团有限公司招聘笔试题库2025
- 排污许可证审核及环境应急管理服务方案投标文件(技术方案)
- 2025年中国软件测试行业市场深度分析及发展前景预测报告
- 2026版创新设计高考总复习数学人教A版学生用-学生答案一~五章
- 消防工程监理质量评估报告(填写范本)
- 1.2地球与地球仪(第1课时)课件七年级地理上册人教版
- 外观专利培训课件
评论
0/150
提交评论