Mit welchem ​​Tool können zwei TCP / IP-Server verbunden werden?

1694
Thomas Bratt

Das Tool sollte eine Verbindung zu zwei beliebigen TCP / IP-Servern herstellen und Sende- und Empfangsvorgänge transparent zwischen diesen routen. Das Tool sollte eine Verbindung zu beiden TCP / IP-Servern herstellen und alle empfangenen Daten transparent zwischen den beiden weiterleiten.

Das Problem, das das Tool lösen soll, besteht darin, dass zwei vernetzte Geräte vorhanden sind, die sich jeweils als Server verhalten. Eines der Geräte sendet TCP / IP-Daten an den Client, wenn ein Ereignis darauf eintritt. Dann erwartet ein anderes Gerät, dass diese Daten an ihn gesendet werden.

1
In welchem ​​Zusammenhang? Abhängig von dem Programm, über das Sie sprechen, kann es von "Impossible" bis "Client" unter "Optionen" reichen. Grant vor 14 Jahren 0
Mehr Infos nötig. Was versuchst du zu erreichen? Mark vor 14 Jahren 0
Einige weitere Beschreibung hinzugefügt. Thomas Bratt vor 14 Jahren 0
Normalerweise müssen Sie zwei vernetzte Geräte miteinander verbinden, indem Sie eine Verbindung mit der anderen herstellen. Der Absender öffnet also eine TCP / IP-Verbindung zum Listener. Oder der Listener öffnet eine TCP / IP-Verbindung zum Sender. J. Polfer vor 14 Jahren 0
@sheepsimulator: das stimmt, aber in diesem Fall habe ich zwei TCP / IP-Server, beide mit einem abhörenden Socket. Daher das Problem! :) Thomas Bratt vor 14 Jahren 1
Kann eines dieser beiden Serverprogramme geändert werden? J. Polfer vor 14 Jahren 0
@sheepsimulator: Leider nicht. Thomas Bratt vor 14 Jahren 0
Laufen Sie Windows oder Linux? J. Polfer vor 14 Jahren 0
Windows. Ich habe die Tags aktualisiert, um dies anzuzeigen. Thomas Bratt vor 14 Jahren 0
@ Thomas Bratt - das hört sich nach einem äußerst süßen Projekt an. Viel Glück auf Ihrer Messe! J. Polfer vor 14 Jahren 0

3 Antworten auf die Frage

4
J. Polfer

HINWEIS: Die Antwort wurde basierend auf Klarstellungen vollständig überarbeitet.

Das OP verfügt über zwei Server, die beide überwachen. Einer sendet Daten, der andere wartet darauf, dass er hereinkommt. Aber beide sind Listener und benötigen einen TCP / IP-Client, um sich gleichzeitig mit beiden zu verbinden.

Sie benötigen im Wesentlichen ein Pipe-Programm, das gleichzeitig eine Verbindung zu beiden Servern herstellt, und alles, was von einem Server gesendet wird, sollte an den anderen Server gesendet werden.

Überprüfen Sie das netcat- Programm (Windows-Version hier verfügbar ). Möglicherweise können Sie so etwas tun:

nc <send svr> <send svr port> | nc <recv svr> <recv svr port> 
Danke für den Tipp und den Link :) Ich habe wirklich zwei TCP / IP-Server, die jeweils einen Listening-Socket verwenden und auf eine eingehende Verbindung warten. In dieser Konfiguration gibt es keinen "sendenden Server" (dh einen Client). Thomas Bratt vor 14 Jahren 0
Ausgezeichnet! Ich werde das überprüfen :) Thomas Bratt vor 14 Jahren 0
@sheepsimulator, deine mentalen Kräfte sind stark. Ich hätte nie die Bedeutung dieser Frage erraten :) vava vor 14 Jahren 0
Danke, danke :) Nur um Sie wissen zu lassen - sie wird nächste Woche für eine Messe in Stockholm genutzt, auf der Bewegungserkennungsereignisse an einen Server weitergeleitet werden, den ich geschrieben habe. Irgendwann werden wir Software schreiben, um uns als Client zu verbinden, aber wir haben keine Zeit vor der Show. Thomas Bratt vor 14 Jahren 1
@vava - Es war ein iterativer Prozess. Schauen Sie sich mein Bearbeitungsprotokoll an. Diese Antwort wurde 7 Revisionen durchlaufen. J. Polfer vor 14 Jahren 0
1
David Thornley

Server, auf denen TCP / IP ausgeführt wird, können bereits frei kommunizieren, sofern sie sich im selben Netz befinden. Das ist, was TCP / IP tut. Möglicherweise müssen Sie einen Router anschließen, wenn er sich in einem anderen Netz befindet. Wenn dies Ihr Problem ist, müssen Sie Ihr Problem ausführlicher beschreiben, da das, was für die Verbindung von isolierten Netzen gut ist, möglicherweise nicht für Subnetze geeignet ist, die NAT mit einer einzigen IP-Adresse verwenden.

Wenn Sie "Server" und "Client" erwähnen, scheinen Sie eine Art Anwendung zu implizieren, die mit TCP kommuniziert. Viele Programme haben jedoch unterschiedliche Client- und Serverrollen, die nicht austauschbar sind. Ein Subversion-Server checkt beispielsweise keine Quellstruktur aus. Es gibt keine automatische Übersetzung und kann nicht sein, da die Leute ständig neue Programme schreiben. Wenn Sie an eine bestimmte Anwendung oder Liste denken, können Sie diese zu Ihrer Frage hinzufügen.

Das Problem ist, dass ich zwei Geräte habe, die sich jeweils wie ein TCP / IP-Server verhalten. Einer generiert Daten, wenn ein Ereignis eintritt, und ich möchte, dass diese Daten automatisch an den anderen Server weitergeleitet werden. Thomas Bratt vor 14 Jahren 0
0
jfmessier

Basierend auf dem überarbeiteten Text: "Sie benötigen im Wesentlichen ein Pipe-Programm, das gleichzeitig eine Verbindung zu beiden Servern herstellt, und alles, was aus einem Socket gesendet wird, sollte in den anderen gesteckt werden." ein Lastverteiler. Hierfür können Sie sich die Lastverteilung / Failover-Hardware ansehen. Und diese Art der Verbindung lässt sich am besten mit hardwarebasierten Geräten verwalten.

Können Sie ein praktisches Beispiel finden, wo dies auf diese Weise verwendet werden kann / kann? Hört sich nach übertrieben an. J. Polfer vor 14 Jahren 0
Es hängt alles davon ab, wie schnell Ihre Verbindung ist und wie wichtig sie ist. Cisco stellt etwas von dieser Hardware her. Sie sollten jedoch in der Lage sein, eine Software-basierte Lösung zu verwenden, die Linux und einen PC mit drei oder mehr NICS-Systemen verwendet, um die Lastverteilung zu gewährleisten. Wenn Sie beispielsweise über eine Website verfügen, für die ein Lastausgleich / Failover erforderlich ist, können Sie die zwei Websites hinter dem Lastverteiler mit einem Synchronisierungstool für den Inhalt und dem Lastverteiler vor ihnen anzeigen lassen eine einzige IP-Adresse. Wo es schwieriger wird, ist das Verwalten verbindungsloser Sitzungen. jfmessier vor 14 Jahren 0