网络接口编程-天,广播程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络接口编程-天,广播程序

广播: 接收程序 #includestdio.h #includewinsock2.h #includewindows.h #pragma comment(lib,ws2_32.lib) void main(void) { SOCKET s; sockaddr_in from,a; WSADATA wsdata; BOOL optval; //启动SOCKET库,版本为2.0 WSAStartup(WINSOCK_VERSION,wsdata); optval=TRUE; //然后赋值给两个地址,一个用来绑定套接字,一个用来从网络上的广播地址接收消息; a.sin_family=AF_INET; a.sin_addr.s_addr=INADDR_ANY; a.sin_port=htons(9999); from.sin_family=AF_INET; from.sin_addr.s_addr=INADDR_BROADCAST; from.sin_port=htons(9999); int fromlength=sizeof(SOCKADDR); //用UDP初始化套接字 s=socket(AF_INET,SOCK_DGRAM,0); //设置该套接字为广播类型, setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)optval,sizeof(optval)); bind(s,(sockaddr *)a,sizeof(sockaddr_in)); char buf[256]; while(1) { //从广播地址接收消息,注意用来绑定的地址和接收消息的地址是不一样的 recvfrom(s,buf,256,0,(struct sockaddr FAR *)from,(int FAR *)fromlength); Sleep(2000); printf(%s\n,buf); ZeroMemory(buf,256); memset(buf,0,sizeof(buf)); } } 发送程序: #includestdio.h #includewinsock2.h #includewindows.h #pragma comment(lib,ws2_32.lib) main() { SOCKET s; sockaddr_in addrto; WSADATA wsdata; BOOL bsocket; char *smsg=你好!这是广播测试!; WSAStartup(WINSOCK_VERSION,wsdata); s=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED); bsocket=TRUE; //然后赋值给地址,用来从网络上的广播地址接收消息; memset (addrto,0,sizeof(addrto)) ; addrto.sin_family=AF_INET; addrto.sin_addr.s_addr=INADDR_BROADCAST; addrto.sin_port=htons(9999); bool opt=true; //设置该套接字为广播类型, setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)opt,sizeof(opt)); int nlen=sizeof(addrto); while(1) { Sleep(2000); //从广播地址发送消息 int ret=sendto(s,smsg,256,0,(sockaddr*)addrto,nlen); if(ret==SOCKET_ERROR) printf(Send error %d!\n,WSAGetLastError()); else { printf(广播发送成功\n); } } } 服务器端程序: 1、创建套接字(socket) 2、将socket绑定到一个本地IP地址和端口上(bind) 3、将socket设为监听模式,准备接收客户请求(listen) 4、等待客户请求到来:当请求到来后,接收连接请求,返回一个新的对应于此次连接的socket(accept) 5、用返回的socket和客户端进行通信(send/recv) 6、返回,等待另一客户请求 7、关闭socket(closesocket) 客户端程序: 1、创建套接字(socket) 2、向服务器发出连接请求(connect) 3、和服务器进行通信(send/recv) 4、关闭sock

文档评论(0)

gix469 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档