实验六、多播发送与接收程序设计

实验六、多播发送与接收程序设计

ID:6600195

大小:33.50 KB

页数:3页

时间:2018-01-19

实验六、多播发送与接收程序设计_第1页
实验六、多播发送与接收程序设计_第2页
实验六、多播发送与接收程序设计_第3页
资源描述:

《实验六、多播发送与接收程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验六、多播发送与接收程序设计一、参考程序发送程序://各调用函数定义//本地接口local_if加入多播组mcaddrintmc_join(SOCKETs,structin_addr*mcaddr,structin_addr*local_if){structip_mreqmreq;//首先用memcpy函数构造ip_mreq型的结构变量mregmemcpy(&(mreq.imr_interface),local_if,sizeof(structin_addr));//localifmemcpy(&(mreq.imr_multiaddr),mcaddr,s

2、izeof(structin_addr));//mutilcastgroupaddressreturn(setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mreq,sizeof(mreq)));}//为多播报文设置外出接口intmc_setIF(SOCKETs,constDWORDlocal_out_if){return(setsockopt(s,IPPROTO_IP,IP_MULTICAST_IF,(char*)&local_out_if,sizeof(local_out_if)));}//设置外出多播报

3、文的ttl值,默认为1intmc_setTTL(SOCKETs,constDWORDttl){return(setsockopt(s,IPPROTO_IP,IP_MULTICAST_TTL,(char*)&ttl,sizeof(ttl)));}//设置外出多播报文是否返回,默认为trueintmc_setLoop(SOCKETs,constBOOLflag){return(setsockopt(s,IPPROTO_IP,IP_MULTICAST_LOOP,(char*)flag,sizeof(flag)));}intmc_leave(SOCKETs,str

4、uctin_addr*mcaddr,structin_addr*local_if)//指定成员推出指定多播组,为了通用性。一般程序运行结束会自动离开){structip_mreqmreq;//构造ip_mreq结构变量memcpy(&(mreq.imr_interface),local_if,sizeof(structin_addr));memcpy(&(mreq.imr_multiaddr),mcaddr,sizeof(structin_addr));return(setsockopt(s,IPPROTO_IP,IP_DROP_MEMBERSHIP,(c

5、har*)&mreq,sizeof(mreq)));//主程序voidmain(){WSADATAwsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKETsock=socket(AF_INET,SOCK_DGRAM,0);structsockaddr_into;memset(&to,0,sizeof(to));to.sin_family=AF_INET;to.sin_port=htons(9999);to.sin_addr.S_un.S_addr=inet_addr(INADDR_ANY);bind(sock,(s

6、tructsockaddr*)&to,sizeof(to));structin_addrmcaddr;mcaddr.s_addr=inet_addr("226.1.2.3");mc_join(sock,&mcaddr,&(to.sin_addr));charbuf[65];while(1){memset(buf,0,65);recvfrom(sock,buf,64,0,NULL,NULL);printf("recvd:%s",buf);}}发送程序:#pragmacomment(lib,"ws2_32.lib")#include

7、#includevoidmain(intargc,char*argv[]){WSADATAwsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKETsock=socket(AF_INET,SOCK_DGRAM,0);DWORDttl;ttl=219;structsockaddr_into;//intlen=sizeof(to);memset(&to,0,sizeof(to));//初始化数组to.sin_family=AF_INET;to.sin_port=htons(9999);to.sin_ad

8、dr.S_un.S_addr=inet_addr("226.1.2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。