socket编程的小例子(udp).doc_第1页
socket编程的小例子(udp).doc_第2页
socket编程的小例子(udp).doc_第3页
socket编程的小例子(udp).doc_第4页
socket编程的小例子(udp).doc_第5页
全文预览已结束

下载本文档

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

文档简介

使用vs演示时需要设置一下添加ws2_32.lib具体操作,添加位置 : “项目”-“属性”,之后出现界面点击输入“输入”后界面如下在“附加依赖项”后添加“ws2_32.lib”即可。服务器端程序#include stdafx.h#include #include using namespace std;void main(void)SOCKET sock;/1.启动SOCKET库,版本为2.0WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 0 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) coutSocket2.0初始化失败,Exit!;return;if ( LOBYTE( wsaData.wVersion ) != 2 |HIBYTE( wsaData.wVersion ) != 0 ) WSACleanup();return; /2.创建套接字sock = socket(AF_INET,SOCK_DGRAM,0);if (sock = INVALID_SOCKET )coutSocket 创建失败,Exit!;return;/3.绑定sockaddr_in myaddr; /sockaddr_in相当于sockaddr结构memset(&myaddr,0,sizeof(myaddr);myaddr.sin_family=AF_INET;/如果绑定地址不是本机地址或者ADDR_ANY,则recvfrom函数不会正确接收,而是立刻返回 /myaddr.sin_addr.s_addr = inet_addr(192.168.0.7);myaddr.sin_addr.s_addr=ADDR_ANY;/端口号必须和客户发往的端口号一致myaddr.sin_port=htons(7861); bind(sock,(sockaddr*)&myaddr,sizeof(myaddr);int fromlength = sizeof(SOCKADDR);char buf256=;long number=0;while(1)number+;recv(sock,buf,sizeof(buf),0);coutnumber:bufendl;memset(buf,0,sizeof(buf);if (!closesocket(sock) WSAGetLastError();return;if (!WSACleanup()WSAGetLastError();return;客户端程序:#include stdafx.h#include #include using namespace std;void main()SOCKET sock; /socketchar szMsg = this is a UDP test package;/被发送的字段/1.启动SOCKET库,版本为2.0WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 0 );err = WSAStartup(wVersionRequested, &wsaData );if ( err != 0 ) coutSocket2.0初始化失败,Exit!;return;if ( LOBYTE( wsaData.wVersion ) != 2 |HIBYTE( wsaData.wVersion ) != 0 ) WSACleanup( );return; /2.创建socket,sock = socket(AF_INET, /internetwork: UDP, TCP, etcSOCK_DGRAM, /SOCK_DGRAM说明是UDP类型0 /protocol);if (sock = INVALID_SOCKET ) coutSocket 创建失败,Exit!;return;/3.设置发往的地址sockaddr_in addrto; /发往的地址memset(&addrto,0,sizeof(addrto);addrto.sin_family=AF_INET;/以127开头的ip,并且客户和服务器在同一个局域网,服务方都可以接收(相当于广播);/指定服务方ip的可以接收 addrto.sin_addr.s_addr=inet_addr(127.0.0.1);/当然也可以换成自己机器的确切Ip/端口号必须和服务器绑定的端口号一致addrto.sin_port=htons(7861);int nlen=sizeof(addrto);unsigned int uIndex = 1;while(true)Sleep(1000);/从广播地址发送消息if( sendto(sock,szMsg,strlen(szMsg),0,(sockaddr*)&addrto,nlen)= SOCKET_ERROR )coutWSAGetLastError()endl;elsecoutuIndex+:an UDP

温馨提示

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

评论

0/150

提交评论