网络接口编程-聊天,广播程序 (2).doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:8 大小:57KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

网络接口编程-聊天,广播程序 (2).doc

网络接口编程-聊天,广播程序(2).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

广播:接收程序#include<stdio.h>#include<winsock2.h>#include<windows.h>#pragmacomment(lib,"ws2_32.lib")voidmain(void){SOCKETs;sockaddr_infrom,a;WSADATAwsdata;BOOLoptval;//启动SOCKET库,版本为2.0WSAStartup(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);intfromlength=sizeof(SOCKADDR);//用UDP初始化套接字s=socket(AF_INET,SOCK_DGRAM,0);//设置该套接字为广播类型,setsockopt(s,SOL_SOCKET,SO_BROADCAST,(charFAR*)&optval,sizeof(optval));bind(s,(sockaddr*)&a,sizeof(sockaddr_in));charbuf[256];while(1){//从广播地址接收消息,注意用来绑定的地址和接收消息的地址是不一样的recvfrom(s,buf,256,0,(structsockaddrFAR*)&from,(intFAR*)&fromlength);Sleep(2000);printf("%s\n",buf);ZeroMemory(buf,256);memset(&buf,0,sizeof(buf));}}发送程序:#include<stdio.h>#include<winsock2.h>#include<windows.h>#pragmacomment(lib,"ws2_32.lib")main(){SOCKETs;sockaddr_inaddrto;WSADATAwsdata;BOOLbsocket;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);boolopt=true;//设置该套接字为广播类型,setsockopt(s,SOL_SOCKET,SO_BROADCAST,(charFAR*)&opt,sizeof(opt));intnlen=sizeof(addrto);while(1){Sleep(2000);//从广播地址发送消息intret=sendto(s,smsg,256,0,(sockaddr*)&addrto,nlen);if(ret==SOCKET_ERROR)printf("Senderror%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、关闭socket(closesocket)#include“iostream.h”#include“winsock2.h”#include