我有一台配置了多个 IP 地址并且不在网络中的 PC。
我正在尝试在这台 PC 上使用 CAsyncSocket 运行在 VC++ 上开发的服务器软件。但是Bind()
该软件中的功能总是失败并出现错误WSAEADDRNOTAVAIL 10049
。
但是我发现绑定在以下情况下可以正常工作:
- 当 PC 连接到网络时
- 在 PC 中配置单个 IP 地址时
我无法理解套接字绑定与网络连接和多个 IP 配置的依赖关系。这是 CAsyncSocket 的问题还是在这种情况下有办法处理套接字?
编辑:
这是我用于创建套接字(显式绑定)的代码,非常简单:
ret = m_pAMC1_MAIN_VMS_A_SenderSocket->Create(m_amc1_main_vms_a_port_local, \
SOCK_DGRAM, FD_WRITE, (LPCTSTR) "193.0.161.111");
请注意,在上面列出的情况下,相同的代码会成功执行。