2012-04-01 2 views
0

다음과 같은 상황이 있습니다.소켓 프로그래밍 시나리오 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, 

다음 시나리오에서 작동합니까?

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

(C 지금까지 '연결 시도 B를 사용하여 만든 동일한 소켓이)

B and C can communicate with sockets they have. 

수 나도 B가 C에 연결하는 방법을 알고 가능한 통신의 경우 이런 종류의, , 또는 C가 B에 연결되지만, 나는 그것을 여기에서 원하지 않는다. (또한 시스템의 규모에 대해 걱정하지 않습니다. 즉, 시스템에 너무 많은 활성 소켓이 있습니다.)

+2

누군가를 울리고 전화를 보낼 수 있습니까? 같은 상황. – EJP

+0

@EJP 좋은 예. –

답변

2

소켓은 로컬 포트 ​​중 하나를 원격 주소의 포트에 연결합니다. 수명주기는 create, bind, close입니다. 소켓을 직렬화하고 다른 JVM으로 보내는 것은 작동하지 않습니다.

2

소켓 인스턴스를 직렬화 할 수 없습니다. JVM 레벨이나 기본 시스템 레벨에서는 작동하지 않습니다. 두 클라이언트 간의 통신 프록시로 마스터 서버를 사용하거나 한 클라이언트를 다른 클라이언트와 너무 명확하게 연결할 수 있습니다.