2012-04-01 23 views
0

Ich habe die folgende Situation.Socket Programmierung Szenario Java

Assuming there are 3 systems: A,B,C and A is master. 
so, B & C connects to the server at A. 
if B & C would like to communicate, 

wird das folgende Szenario funktionieren?

B connects to A, (creating a socket object at both B & A) 
A sends socket object to C 

(C jetzt die gleiche Buchse hat B erstellt mit‘Verbindungsversuch A)

B and C can communicate with sockets they have. 

kann diese Art von communcation möglich, ich einen Weg wissen, wo entweder B nach C verbindet, oder C verbindet sich mit B, aber das will ich hier nicht. (Außerdem mache ich mir keine Sorgen über den Umfang des Systems, d. H. Zu viele aktive Sockets im System)

+2

Können Sie jemanden anrufen und ihm Ihr Telefon schicken? Gleiche Situation. – EJP

+0

@EJP Schönes Beispiel. –

Antwort

2

Ein Socket verbindet einen Ihrer lokalen Ports mit einem Port der Remote-Adresse. Und es hat einen Lebenszyklus, create, bind, close. Serialisierung von Sockets und Senden an andere JVM funktioniert nicht.

2

Sie können Socket-Instanzen nicht serialisieren. Es würde nicht auf JVM-Ebene oder auf der Ebene der nativen Maschine funktionieren. Sie können Ihren Master-Server als Kommunikations-Proxy zwischen den beiden Clients verwenden oder alternativ einen Client explizit mit dem anderen verbinden.