2010-05-21 5 views
4

새로운 Java Desktop 응용 프로그램을 개발 중입니다. 미디어 플레이어와 같은 것. 컴퓨터가 시작될 때 백그라운드에서 대부분의 리소스를로드하려고합니다. 그러나 사용자는 앱 내에서 또는 다른 유틸리티를 사용하여이 옵션을 해제 할 수 있습니다. 따라서 앱의 금지 인스턴스가 이미 실행 중이고 사용자가 앱을 다시 시작한 다음 이미 실행중인 인스턴스와 통신하여 새 창을 시작할 수 있다면 어떻게할까요?응용 프로그램의 두 인스턴스를 Java로 어떻게 통신 할 수 있습니까?

답변

7

그렇게하는 가장 알려진 방법은 ServerSocket를 열 수 있습니다.

ServerSocket을로드하지 못하면 인스턴스가 이미 실행되고 있기 때문일 수 있습니다.

그런 경우 Socket을 열고 두 인스턴스간에 주문을 전달할 수 있습니다.

그러나 Jini 또는 JGroups와 같이 훨씬 더 정교한 솔루션을 사용할 수도 있습니다.

+1

+1은 JGroups와 같은 Java 전용 솔루션을 언급합니다. – Thilo

+0

ServerSocke를 더 캡슐화하는 ServerSockeChannel을 살펴보십시오. –

+0

@Thilo JGroups는 즉각 사용하지 않는 진정으로 사랑받는 최초의 라이브러리입니다. 나는 항상 그 능력이 아주 이상하다는 것을 발견했다. – Riduidel

1

포트를 사용할 수 있습니다. , 그것이 시작되면 (이미 실행중인 경우)

는, 서버에 통신을 시도 서버 부분이 있으므로

관련 문제