私のマシンには、2 つの別々の IP アドレスで構成された 2 つのインターネット カードがあります。どちらの 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) の 2 つのポートを介してこれを行います。
スクリプトを使用してポート (192.168.0.11, 50000) と (192.168.0.12, 50000) を作成し、通信をログに記録して操作できるようにします。データは、ハードウェアと通信できる 2 つのシミュレーターに転送されます。
したがって、実際には、私のスクリプトは「中間者」であり、ハードウェアをテストする目的でデータをログに記録して破損させます。
私のスクリプトのソケットインターフェースは次のとおりです。
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
これは期待どおりに機能し、正しいデータがチャネルごとにログに記録されます。
ただし、次の 2 つの簡単な変更を行うと、機能しなくなります。
1) 2 番目のシミュレーターの構成ファイルを 60002 から 50002 に変更し、IP アドレスは 192.168.0.12 のままにします。
2) 私のスクリプトでは、IP2 用に 60002 を 50002 に変更しています。
突然、2 番目のチャネルからのデータが最初のシミュレータに到着します。どうすればいいの?.netにはIPAnyがあり、シミュレーターがこれを何らかの形で使用していて、構成ファイルのIPアドレスを無視しているかどうか疑問に思っています。それがここの問題かもしれないと思いますか?
ありがとう、
バリー