私は現在、これを行うだけで、私が書いた単純なブロードキャストサーバー(「こんにちは」をブロードキャストするだけ)を聞くことができます:
int fd = socket(PF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
add.sin_family = AF_INET;
add.sin_port = htons(10074);
bind(fd, struct sockaddr*) &addr, sizeof(addr));
char buf[800];
recvfrom(fd, buf, sizeof(buf), 0, NULL, 0);
私が疑問に思っているのは、上記はどのインターフェースを使用しているのでしょうか? ある種のデフォルト?また、ブロードキャストをリッスンするインターフェイスを変更するにはどうすればよいですか? 設定によるマルチキャストimr_address
と構造体imr_ifindex
で見たことip_mreqn
がありますが、ブロードキャストに相当するものがあるかどうかはわかりません。