【发布时间】:2012-07-27 22:42:14
【问题描述】:
我已经设置了一个 TCP/IP 客户端/服务器连接,每次交换请求时都会打开和关闭连接。它完美地工作;客户端应用程序打开连接,发送请求并等待。服务器应用程序接收到请求产生响应并将其发回并关闭连接。客户端和服务器应用程序这样做了数百次。
现在我正尝试进行下一步:设置源 IP 地址和端口。
该代码应该可以在 Linux 和 Windows 上运行,所以 SO_BINDTODEVICE 是毫无疑问的,因为它只在 Linux/Unix 上受支持。
我尝试在客户端套接字上绑定源端口和 ANYADRR。它起作用了……有一段时间了。最终它thorws错误10038。我在互联网上阅读了几篇文章,但没有明确的答案......源IP的选择仍然不清楚。
请注意,我在同一个库(无连接 UDP 通信模式)、发送器和接收器上也有单播和多播模式,并且我能够在多播模式下设置源端口/IP,单播我没有还没试。
无论如何,有人知道任何可以帮助的事情吗?我正在使用 WinSock 2.2 并尝试尽可能地独立于平台。
【问题讨论】:
-
为什么要控制源端口?这通常是一个非常糟糕的主意。
标签: sockets tcp winsock winsock2