Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C bind()-将UDP套接字绑定到不同的地址_C_Sockets_Udp_Bind - Fatal编程技术网

C bind()-将UDP套接字绑定到不同的地址

C bind()-将UDP套接字绑定到不同的地址,c,sockets,udp,bind,C,Sockets,Udp,Bind,我有一个非常简单的问题,我似乎在任何地方都找不到答案: 使用Linux C套接字,是否可以在本地地址以外的IP地址上绑定()和recvfrom()UDP数据包 i、 例如,如果主机已获得LAN地址10.0.0.4,并且我希望它能够接收发送到端口5505上地址10.0.0.5的UDP数据包(例如),如何实现这一点 我根本找不到任何使用bind/recvfrom的例子,这似乎应该很普遍 更新 我正在尝试在多个主机之间通信数据包流。每个主机在其自己的地址上传输UDP数据包,任何其他主机都可以通过在特定

我有一个非常简单的问题,我似乎在任何地方都找不到答案:

使用Linux C套接字,是否可以在本地地址以外的IP地址上绑定()和recvfrom()UDP数据包

i、 例如,如果主机已获得LAN地址10.0.0.4,并且我希望它能够接收发送到端口5505上地址10.0.0.5的UDP数据包(例如),如何实现这一点

我根本找不到任何使用bind/recvfrom的例子,这似乎应该很普遍

更新


我正在尝试在多个主机之间通信数据包流。每个主机在其自己的地址上传输UDP数据包,任何其他主机都可以通过在特定地址上recvfrom()进行侦听

不,通常不能绑定到非本地单播地址。在以太网上,这些数据包将被发送到IP地址所有者的硬件地址,默认情况下,NIC甚至不会将这些数据包转发到内核


您可以通过使用IP多播来实现想要的效果。您可以为应用程序选择一个特定的多播地址并绑定到该地址,然后使用
IP\u ADD\u MEMBERSHIP
socket选项加入多播组。然后,您可以按常规方式使用
recvfrom()

不清楚您在这里要问什么。。。这里的交通流量是多少?是谁派来的?谁在读书?中间有一台机器?你不应该使用多播地址吗?多播,甚至本地广播。