【问题标题】:Socket.Bind then connect on MS Loopback NICSocket.Bind 然后连接到 MS Loopback NIC
【发布时间】:2012-09-30 21:39:15
【问题描述】:

我在 Windows 7 x64

中创建了一个环回接口卡

说我的本地机器的IP是

20.200.20.30 / 255.255.255.128

环回适配器的IP是

20.200.20.65 / 255.255.255.128

我在 20.200.20.30 的 7800 端口上打开了一个监听套接字

在另一个线程/应用程序上,我在 20.200.20.65 上绑定一个套接字,然后连接 20.200.20.30 但它因连接超时而失败。

不过,它在 Windows XP 上运行良好。

请指教

【问题讨论】:

  • 你尝试从你刚才bind()的同一个套接字connect()
  • 某种,我绑定到 65(Loopback) 然后连接到 30(物理网卡)

标签: c# java windows tcp loopback


【解决方案1】:

将出站套接字绑定到环回地址,然后尝试将其连接到非环回地址没有任何意义。只需跳过绑定步骤。几乎没有理由在 VPN 之外执行此操作,但事实并非如此。

【讨论】:

  • 我实际上是在测试一个需要多台 PC 才能运行的代码,因此试图模拟多个 NIC 的环境。跳过绑定步骤需要更改我不想做的代码。
  • @BasitAnwer 好的,所以将其绑定到您要发送到的地址。环回适配器只能环回。
  • 在 windows XP 中运行良好,我已尝试启用weakHostsend 和receive
  • @BasitAnwer 我不明白做错的目的,不管它是否恰好在某些特定平台上工作。
  • 我这样做的原因是在需要部署它的环境中有多个 NIC,因此如果在配置中定义了特定 IP,则绑定是最合适的选项。
【解决方案2】:

完成。

我所要做的就是为两个网卡启用weakhost

netsh 接口 ipv4 设置接口“MainNIC”weakhostsend=enabled netsh 接口 ipv4 设置接口“MainNIC”weakhostreceive=enabled

netsh 接口 ipv4 设置接口“LoopbackNIC”weakhostsend=enabled netsh interface ipv4 set interface “LoopbackNIC” weakhostreceive=enabled

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多