admin 管理员组文章数量: 887021
2023年12月22日发(作者:python header)
memset(&addr,0,sizeof(addr)); _family = AF_UNIX; strcpy(_path,server_file); if (access(_path,0) != -1) { remove(_path); } if(bind(fd,(sockaddr*)&addr,sizeof(addr)) < 0) { perror("bind"); return -1; } struct sockaddr_un clientaddr; socklen_t len = sizeof(clientaddr); char msgrecv[1024];
while (1) { memset(msgrecv,'0',1024); int size = recvfrom(fd,msgrecv,sizeof(msgrecv),0,(sockaddr*)&clientaddr,&len); if (size < 0) { perror("recv"); return -1; } cout << "I'm server,receive a msg: " << msgrecv << " from: " << _path << endl; if (strncmp("quit",msgrecv,4) == 0) { cout << "Server is exiting!" << endl; break; } char *p = "OK,I got id!"; int ssize = sendto(fd,p,strlen(p),0,(sockaddr*)&clientaddr,len); if (ssize < 0) { perror("sendto"); return -1; } sleep(1); } if (close(fd) < 0) { perror("close"); return -1; } return 0;
}
代码很简单,udpserver 作为服务端,循环接受和打印消息。如果收到了 quit 的消息就退出。#include
char *p = "Hello,how are you?"; int ssize = sendto(fd,p,strlen(p),0,(sockaddr*)&serveraddr,len); if (ssize < 0) { perror("sendto"); return -1; }
版权声明:本文标题:Linux多进程通信开发(七):unixdomainsocket之UDP通信 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703199291h441968.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论