小编use*_*602的帖子

C - 选择UDP /组播套接字的接口

我试图修改多播侦听器/发送器示例以将UDP /多播套接字绑定到特定接口而不使用INADDR_ANY宏.

我拥有接口的IPv4地址.我尝试了以下内容,但套接字没有收到任何UDP(单播,广播,多播)数据包.

struct sockaddr_in addr;
int fd, nbytes;
socklen_t  addrlen;
struct ip_mreq mreq;

// my_ipv4Addr equals current IP as String, e.g. "89.89.89.89"

// create what looks like an ordinary UDP socket */
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
    perror("socket");
    exit(1);
}

// set up addresses
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
// [-]    addr.sin_addr.s_addr = htonl(INADDR_ANY); 
addr.sin_addr.s_addr = inet_addr(my_ipv4Addr); 
addr.sin_port = htons(port);

// bind socket
if (bind(fd, (struct sockaddr *) &addr, …
Run Code Online (Sandbox Code Playgroud)

c sockets udp interface multicast

15
推荐指数
3
解决办法
3万
查看次数

标签 统计

c ×1

interface ×1

multicast ×1

sockets ×1

udp ×1