UDP广播实例理解
来源:互联网 发布:vue vendor.js 包过大 编辑:程序博客网 时间:2024/05/18 01:24
发送端:
#define MAXSIZE 80void usage(const char *info){ printf("Usage: %s <srv PORT>\n", info); exit(0);}int main(int argc, char *argv[]){ if(argc != 2) usage(argv[0]); int sockfd; char buf[MAXSIZE]; struct sockaddr_in myaddr, peeraddr; sockfd = Socket(PF_INET, SOCK_DGRAM, 0); bzero(&myaddr, sizeof(myaddr)); myaddr.sin_family = PF_INET; myaddr.sin_port = htons(atoi(argv[1])); myaddr.sin_addr.s_addr = htonl(INADDR_ANY);//广播地址 Bind(sockfd, (struct sockaddr *)&myaddr, sizeof(myaddr));//绑定socket socklen_t len = sizeof(peeraddr); while(1){ recvfrom(sockfd, buf, MAXSIZE,0, (struct sockaddr *)&peeraddr, &len); printf("recv from [%s:%d] : %s\n",inet_ntoa(peeraddr.sin_addr),ntohs(peeraddr.sin_port), buf); } return 0;}
接收端:
#include "sock.h"#define MAXSIZE 80void usage(const char *info){ printf("Usage: %s <srv IP> <srv PORT>\n", info); exit(0);}int main(int argc, char *argv[]){ if(argc != 3) usage(argv[0]); int sockfd; char buf[MAXSIZE]; struct sockaddr_in peeraddr; sockfd = socket(PF_INET, SOCK_DGRAM, 0); // enable BROADCAST int on = 1; setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));//开启广播功能 bzero(&peeraddr, sizeof(peeraddr)); peeraddr.sin_family = AF_INET; peeraddr.sin_port = htons(atoi(argv[2])); peeraddr.sin_addr.s_addr = inet_addr(argv[1]); strncpy(buf, "This is a broadcast message!\n", MAXSIZE); while(1){ sendto(sockfd, buf, MAXSIZE, 0, (struct sockaddr *)&peeraddr, sizeof(peeraddr)); sleep(1); } return 0;}
0 0
- UDP广播实例理解
- 基于UDP协议的广播程序实例
- boost库之udp广播实例
- UDP广播
- UDP广播
- udp广播
- UDP广播
- UDP广播
- UDP广播
- UDP 广播
- UDP广播
- UDP广播
- UDP广播
- udp广播
- udp广播
- UDP广播
- UDP广播
- UDP广播
- 【MCU实战经验】+ 通过SD卡升级HEX格式程序(附源码)
- Material.SetTextureOffset 设置纹理偏移
- JAVA包的概念
- 王健林:中国最大的机会在服务业,不是传统服务业
- ubuntu下c语言编程获取系统时间
- UDP广播实例理解
- 用前序和中序恢复二叉树
- SpringMVC+Mybatis框架开发
- linux通过端口号杀进程
- eclipse 查找接口实现类快捷键
- tomcat 内存参数设置
- 苹果Apple Pay优缺点全解析
- eclipse快捷键不能使用crtl+alt+down
- 常用小方法 整理中