在多宿主机器上的UDP侦听套接字

时间:2011-11-03 14:55:28

标签: c++ sockets mfc udp winsock

我们正在Win32 / MFC应用程序中侦听UDP流量。使用以下内容创建侦听套接字。

CSocket sock;
sock.Create(LISTEN_PORT,SOCK_DGRAM);

我们在工作线程的循环中调用CAsyncSocket :: ReceiveFrom()以允许在我们的应用程序中接收数据包。

在具有多个网卡的计算机上似乎存在问题。例如,2个有线网络和一个无线adhoc网络。使用此配置,我们似乎无法从无线adhoc网络上的对等方接收发送到我们机器的UDP数据。

相反,我们能够将UDP发送到同一个对等体。因此,它确定如何获得无线特设对等设备的流量,但是来自对等设备的流量没有进入我们的套接字。

我怀疑是因为这台机器是多宿主的。我的第一个想法是确保我们在所有网络接口上绑定UDP套接字。但是,我检查了CSocket :: Create文档,它表明如果你使用第三个参数(lpszSocketAddress)的默认值NULL,它将在所有网络接口上监听。

所以现在我很难过。任何人都知道在我想念的多宿主计算机上监听UDP流量是否有诀窍? adhoc无线网络是否会引入任何复杂情况?

0 个答案:

没有答案