我在我的机器上配置了两个不同ip地址的互联网卡。这两个ip地址都属于同一个网络。我是否正确地说,当我创建一个套接字时,它是针对其中一个ip地址特定的?
更新:
这是我的情况:
我有一个硬件设备位于192.168.0.10。它通过udp与(192.168.0.11, 50000)和(192.168.0.12, 50000)通信。硬件设备通过两个端口进行通信,如下所示:(192.168.0.10, 49000)和(192.168.0.10, 49001)。
我通过脚本创建端口(192.168.0.11, 50000)和(192.168.0.12, 50000),以便记录和操作通信,然后将数据转发到两个模拟器,这两个模拟器能够与硬件通信。
因此,在实际操作中,我的脚本是“中间人”,我记录并破坏数据,以测试硬件。
以下是我的脚本的套接字接口:
更新:
这是我的情况:
我有一个硬件设备位于192.168.0.10。它通过udp与(192.168.0.11, 50000)和(192.168.0.12, 50000)通信。硬件设备通过两个端口进行通信,如下所示:(192.168.0.10, 49000)和(192.168.0.10, 49001)。
我通过脚本创建端口(192.168.0.11, 50000)和(192.168.0.12, 50000),以便记录和操作通信,然后将数据转发到两个模拟器,这两个模拟器能够与硬件通信。
因此,在实际操作中,我的脚本是“中间人”,我记录并破坏数据,以测试硬件。
以下是我的脚本的套接字接口:
IP 1 - Channel 1
External_socket = (192.168.0.10, 49000) ** Hardware
External_side_socket = (192.168.0.11, 50000) ** Script
Simulator_side_socket = (192.168.0.11, 50001) ** Script
Simulator_socket = (192.168.0.11, 50002) ** Simulator
IP2 - Channel 2
External_socket = (192.168.0.10, 49001) ** Hardware
External_side_socket = (192.168.0.12, 50000) ** Script
Simulator_side_socket = (192.168.0.12, 50001) ** Script
Simulator_socket = (192.168.0.12, 60002) ** Simulator
这一部分的代码正常工作,每个通道都记录了正确的数据。
但是,如果我进行两个简单的更改,它就无法工作:
1)将第二个模拟器的配置文件从60002更改为50002,同时保持IP地址为192.168.0.12。
2)在我的脚本中,我还将IP2的端口号从60002更改为50002。
突然间,第二个通道的数据传送到了第一个模拟器。这是怎么回事?.NET有一个IPAny,我想知道模拟器是否在某种方式下使用了这个选项,忽略了其配置文件中的IP地址。你认为这可能是问题所在吗?
谢谢,
Barry