Zwei Client-Sockets verbinden

Nehmen wir an, Java hat zwei Arten von Sockets:

server sockets "ServerSocket"Client Sockets oder einfach "Socket"

tellen Sie sich die Situation von zwei Prozessen vo

X = Client
Y = Server

Der Serverprozess Y: hat einen "ServerSocket", der auf einen TCP-Port wartet
Der Client-Prozess X: sendet eine Verbindungsanforderung über einen "Socket" an Y.

Y: Dann dasaccept() -Methode gibt einen neuen Client-Typ "Socket" zurück,
wenn es auftritt, werden die beiden Sockets "miteinander verbunden",

So: Der Socket im Client-Prozess ist mit dem Socket im Server-Prozess verbunden.
Then: Lesen / Schreiben über Socket X ist wie Lesen / Schreiben über Socket Y.
Now, zweiKlien Sockets werden miteinander verbunden !!

Aber..
Was passiert, wenn ich die beiden Client-Sockets im selben Prozess erstelle und sie miteinander verbinden möchte?

... überhaupt möglich

Sagen wir, wie zwei Client-Sockets miteinander verbunden werden, ohne dass ein dazwischenliegender ServerSocket verwendet wird?

Ich habe es gelöst, indem ich zwei Threads zum kontinuierlichen Lesen von A und Schreiben von B und andere zum Lesen von B und Schreiben von A erstellt habe ...
Aber ich denke, könnte ein besserer Weg sein ... (Diese welt-energieverbrauchenden Threads sind beim Client-Server-Ansatz nicht erforderlich)

Jede Hilfe oder Beratung wäre dankbar !! Vielen Dan

Bearbeiten

Anwendungsbeispiel: "Eine vorhandene Serveranwendung könnte in eine Clientanwendung konvertiert werden". Beispiel: Ein VNC-Server, ein Client-Socket stellt eine Verbindung zum VNC-Server her, und ein anderer Client-Socket wird erstellt (um eine Verbindung zu einem mittleren Server herzustellen) Anwendung verbindet die beiden Clients, wodurch der VNC-Server eine Client-Anwendung ist! Dann wird keine öffentliche IP benötigt.

VNCServer --- MyApp ---> | mittlerer Server | <--- User

Antworten auf die Frage(12)

Ihre Antwort auf die Frage