다른 플랫폼의 두 응용 프로그램이 서로 통신하는 데 도움이되는 서버 코드를 작성하고 있습니다. 그것을 조금 시각화로는 다음과 같이 될 것이다 : 두 개의 서로 다른 응용 프로그램, Java가있는 서버의 소켓 통신
앱 2
앱 1 < ------> 서버 < ------> APP2에서 후면 VAR1이며, 그것을 쓰기 무엇 서버 app1에 var2를 읽어 app2에 씁니다. 이처럼 :
while(true){
var1 = app2stream.readInt();
app1stream.writeInt(var1);
var2 = app1stream.readDouble();
app2stream.writeDouble(var2);
}
내 문제는 어떤 점에서 나는 내 서버에서이 코드를 가지고있다 :
app1.accept();
app2.accept();
이것이 의미하는 것은 상관없이 무엇을하고, 사실이 주어진 것입니다 서버는 항상 실행 중이며, app1.accept()는 차단 메소드이므로 app1이 먼저 연결되어야합니다.
이 문제가 발생합니까? 누가 처음 "왔는지"에 관계없이 두 응용 프로그램이 서버에 연결되도록하고 위의 코드로 서버가 진행될 때까지 기다리는 것이 좋습니다. accept() 부분에 대해서만 스레드를 사용할 수 있고 다른 스레드에 스트림을 전달할 수 있습니까? 채널에 대해 조금 읽었지만 약간의 버릇이 생겼다. 어떤 예도 좋을 것이다.
JMS 구현을 고려 했습니까? 이것은 정확히 설계된 것처럼 들립니다. – karakuricoder