udp socket 通信案例

udp socket 通信案例

ID:37714006

大小:44.00 KB

页数:8页

时间:2019-05-29

udp socket 通信案例_第1页
udp socket 通信案例_第2页
udp socket 通信案例_第3页
udp socket 通信案例_第4页
udp socket 通信案例_第5页
资源描述:

《udp socket 通信案例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#include#include#include#include#include#defineNOR3#defineQUIT2#defineLOG1typedefstructnode{structsockaddr_inaddrc;structnode*next;}linknode,*linklist;typedefstruct{inttype;

2、charname[20];charbuf[1024];}message;linklistCREAT();intmain(intargc,char*argv[]){messagemsg;intsockfd;socklen_tslen;structsockaddr_inaddrs,addrc;linklisth,p,q;h=CREAT();if((sockfd=socket(PF_INET,SOCK_DGRAM,0))<0){perror("socket");exit(-1);}memset(&addrs,0,sizeof(addrs));addrs.sin_family=PF

3、_INET;addrs.sin_addr.s_addr=inet_addr("192.168.0.143");addrs.sin_port=htons(8888);if(bind(sockfd,(structsockaddr*)&addrs,sizeof(addrs))<0){perror("bind");exit(-1);}while(1){slen=sizeof(addrc);recvfrom(sockfd,&msg,sizeof(msg),0,(structsockaddr*)&addrc,&slen);printf("msg.buf=%s,msg.name=%s",

4、msg.buf,msg.name);if(msg.type==LOG){linklistm;m=h->next;p=CREAT();h->next=p;p->next=m;p->addrc=addrc;printf("connectiongfrom%s%d",inet_ntoa(p->addrc.sin_addr),ntohs(p->addrc.sin_port));q=h->next;while(q!=NULL){strcpy(msg.buf,msg.name);strcat(msg.buf,"iscoming");sendto(sockfd,&msg,sizeof(

5、msg),0,(structsockaddr*)&q->addrc,sizeof(q->addrc));q=q->next;}}if(msg.type==NOR){q=h->next;while(q!=NULL){sendto(sockfd,&msg,sizeof(msg),0,(structsockaddr*)&q->addrc,sizeof(q->addrc));q=q->next;}}if(msg.type==QUIT){strcpy(msg.buf,"seeyoulater");sendto(sockfd,&msg,sizeof(msg),0,(structsock

6、addr*)&addrc,sizeof(addrc));delete(addrc,h);strcpy(msg.buf,msg.name);strcat(msg.buf,"isoutline");q=h->next;while(q!=NULL){sendto(sockfd,&msg,sizeof(msg),0,(structsockaddr*)&q->addrc,sizeof(q->addrc));q=q->next;}}}return0;}linklistCREAT(){linklistp;p=(linklist)malloc(sizeof(linknode));p->ne

7、xt=NULL;returnp;}intdelete(structsockaddr_inaddrc,linklistls){linklistm,n,p;m=ls->next;p=ls;if(memcmp(&m->addrc,&addrc,sizeof(addrc))==0){n=m->next;p->next=n;free(m);}m=m->next;p=p->next;}#include#include#include#include#

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

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

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