2024年3月22日发(作者:)
一,使用socket发送广播包的方法:
1,sock = socket(AF_INET,SOCK_DGRAM,0);构建upd套接字
setsockopt(sock, SOL_SOCKET, SO_BROADCAST,(char*)&bbroadcast,sizeof(int));
设置套接字属性,使之能发送广播包:4个255或
如192.168.136.255的包。也可以接受广播包,但是得保证广播包的端口号是自己绑
定的端口号。
在windows下测试结果如上,而在Ubuntu下,有时候能发送4个255的广播包,
有时候就只能发送192.168.136.255的包。原因不明。
注:Ubuntu下这样也可以发送4个255的广播包,前提是ip地址是自动获取或是手
动填写的,而不能用ifconfig临时分配。
这样设置,也可以接受网络上的广播包,只能接受发往套接字bind的端口的广播包。
2,fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)),构建链路层套接字,
就可直接发送广播包。
源码:1,
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define HELLO_WORLD_SERVER_PORT
#define BUFFER_SIZE 1024
int main(int argc, char **argv)
{
int err = 0;
6660


发布评论