Ich schreibe Client-Code, der Datenströme von zwei Servern verarbeitet A & B. Alle drei Knoten sind im selben lokalen Subnetz. Ich versuche, zwei Sockets zu erstellen, die wie unten beschrieben definiert sind.Warum kann ich nicht zwei Buchsen verbinden?
Sockel description = [local/Client-IP]: [local/Client-Port]: [Remote/Server-IP]: [remote/Server-Port]
Socket A zu verbinden: [192.168.40.10]: [50002]: [192.168.40.60]: [50002]
Socket B zu verbinden: [192.168.40.10]: [50002]: [192.168.40.61]: [50002]
Wenn ich versuche, zu Öffnen Sie den zweiten Socket, bekomme ich eine Ausnahme, dass "jede Socket-Adresse aka Protokoll/Netzwerkadresse/Port kann nur einmal verwendet werden". Ich dachte, ich könnte einen anderen Socket definieren, da die Remote-IP-Adresse unterschiedlich ist, obwohl die lokale IP-Adresse und die Portnummer identisch sind. Habe ich keine andere Wahl, als beide Datenströme über den gleichen Socket zu konsumieren?
Wie Sie der Kunde sind, lassen Sie die LokalerAnschluss Eigenschaft leer. Windows wird dann ein kostenloses auswählen. Der lokale Port ist nur notwendig, wenn Sie Ihren Socket in den Listen-Modus setzen. –
Ich denke, ich muss die zwei Server konfigurieren (weil ich diese Fähigkeit habe), die Ziel-IP 192.168.40.10 zu verwenden und jedes zu einem eindeutigen Zielport zu setzen. Dann kann ich zwei Sockets öffnen, die auf zwei Threads im Client laufen und Pakete von jedem Server-Stream empfangen. Dadurch kann ich eine Menge Code, den ich geschrieben habe, wiederverwenden, um mit einem einzigen Stream zu arbeiten. –