Linux系统下UDP发送和接收广播消息小例子
来源:互联网 发布:vb和微信公众号对接 编辑:程序博客网 时间:2024/05/16 11:54
http://blog.csdn.net/robertkun/article/details/8475843
- // 发送端
- #include <iostream>
- #include <stdio.h>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <netdb.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
- using namespace std;
- int main()
- {
- setvbuf(stdout, NULL, _IONBF, 0);
- fflush(stdout);
- int sock = -1;
- if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
- {
- cout<<"socket error"<<endl;
- return false;
- }
- const int opt = 1;
- //设置该套接字为广播类型,
- int nb = 0;
- nb = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&opt, sizeof(opt));
- if(nb == -1)
- {
- cout<<"set socket error..."<<endl;
- return false;
- }
- struct sockaddr_in addrto;
- bzero(&addrto, sizeof(struct sockaddr_in));
- addrto.sin_family=AF_INET;
- addrto.sin_addr.s_addr=htonl(INADDR_BROADCAST);
- addrto.sin_port=htons(6000);
- int nlen=sizeof(addrto);
- while(1)
- {
- sleep(1);
- //从广播地址发送消息
- char smsg[] = {"abcdef"};
- int ret=sendto(sock, smsg, strlen(smsg), 0, (sockaddr*)&addrto, nlen);
- if(ret<0)
- {
- cout<<"send error...."<<ret<<endl;
- }
- else
- {
- printf("ok ");
- }
- }
- return 0;
- }
- // 接收端 http://blog.csdn.net/robertkun
- #include <iostream>
- #include <stdio.h>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <netdb.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <string.h>
- using namespace std;
- int main()
- {
- setvbuf(stdout, NULL, _IONBF, 0);
- fflush(stdout);
- // 绑定地址
- struct sockaddr_in addrto;
- bzero(&addrto, sizeof(struct sockaddr_in));
- addrto.sin_family = AF_INET;
- addrto.sin_addr.s_addr = htonl(INADDR_ANY);
- addrto.sin_port = htons(6000);
- // 广播地址
- struct sockaddr_in from;
- bzero(&from, sizeof(struct sockaddr_in));
- from.sin_family = AF_INET;
- from.sin_addr.s_addr = htonl(INADDR_ANY);
- from.sin_port = htons(6000);
- int sock = -1;
- if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
- {
- cout<<"socket error"<<endl;
- return false;
- }
- const int opt = 1;
- //设置该套接字为广播类型,
- int nb = 0;
- nb = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&opt, sizeof(opt));
- if(nb == -1)
- {
- cout<<"set socket error..."<<endl;
- return false;
- }
- if(bind(sock,(struct sockaddr *)&(addrto), sizeof(struct sockaddr_in)) == -1)
- {
- cout<<"bind error..."<<endl;
- return false;
- }
- int len = sizeof(sockaddr_in);
- char smsg[100] = {0};
- while(1)
- {
- //从广播地址接受消息
- int ret=recvfrom(sock, smsg, 100, 0, (struct sockaddr*)&from,(socklen_t*)&len);
- if(ret<=0)
- {
- cout<<"read error...."<<sock<<endl;
- }
- else
- {
- printf("%s\t", smsg);
- }
- sleep(1);
- }
- return 0;
- }
0 0
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- Linux系统下UDP发送和接收广播消息小例子
- 局域网下UDP广播发送与接收
- Linux下UDP的组播接收和发送的简单例子
- Android发送和接收UDP广播
- 使用UDP发送和接收消息
- udp发送和接收消息,服务端
- JAVA之UDP广播接收与发送小程序
- qt 下UDP消息的接收和发送和TCP发送文件
- Linux下组播&广播消息小例子
- C语言socket UDP广播的发送和接收示例
- 发送广播和接收广播
- 接收和发送广播
- Centos启动和禁用网卡命令
- Java获取当前时间的年月日方法
- PHP对象类型在内存中的分配
- 杭电ACM1060——Leftmost Digit
- Mybatis学习笔记-核心配置文件概述
- Linux系统下UDP发送和接收广播消息小例子
- python学习笔记(3)字符串
- Segmentation of PolSAR
- Android中ListView的Selector的用法
- 安卓开发环境的搭建
- Unity destructor Or OnDestory
- 通过网页去实现远程控制软件的上线!博客,贴吧,云盘等等网页方式实现上线原理解析,绕过域名拦截
- 2015-04-30 smali/baksmali v2.0.6
- io.write("\27[2J")