Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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/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
C++ 如何在多个接口上绑定到同一UDP端口_C++_Sockets_Udp_Bsd - Fatal编程技术网

C++ 如何在多个接口上绑定到同一UDP端口

C++ 如何在多个接口上绑定到同一UDP端口,c++,sockets,udp,bsd,C++,Sockets,Udp,Bsd,我有两个网络接口,正在尝试绑定到两个网络接口上的同一UDP端口,但在尝试绑定到第二个网络接口时出错,EADDRINUSE。当我绑定到套接字时,我会传递一个sockaddr*,在这里我设置了要使用的端口和唯一IP地址 我是否必须使用套接字选项以便重新使用EADDR?这将允许在任一套接字上接收消息,还是消息将转到与其绑定的IP地址相匹配的套接字?您可以使用一个套接字来INADDR\u ANYfor或in6addr\u ANYfor(您不必这样做,但这是通常的方法)。这将使单个套接字能够接受来自机箱上

我有两个网络接口,正在尝试绑定到两个网络接口上的同一UDP端口,但在尝试绑定到第二个网络接口时出错,
EADDRINUSE
。当我绑定到套接字时,我会传递一个
sockaddr*
,在这里我设置了要使用的端口和唯一IP地址

我是否必须使用套接字选项
以便重新使用EADDR
?这将允许在任一套接字上接收消息,还是消息将转到与其绑定的IP地址相匹配的套接字?

您可以使用一个套接字来
INADDR\u ANY
for或
in6addr\u ANY
for(您不必这样做,但这是通常的方法)。这将使单个套接字能够接受来自机箱上所有网络接口的数据包

然后,
SO_REUSEADDR
socket选项将允许您将其他套接字绑定到更具体的地址,即单个接口和同一端口


数据包将在绑定到与给定数据包的目标IP地址最匹配的地址的套接字上接收。

能否显示代码?在没有看到的情况下很难说出任何事情。那么,是否需要为“any”创建一个套接字,并为特定地址创建多个套接字?您可以为所有接口创建一个套接字。那很容易。如果处理/功能不同,或者需要分离应用程序(如在托管环境中),则只需要不同的套接字。