我正在编写一个服务器的代码,可以帮助不同平台上的两个不同的应用程序相互通信。为了形象有点它会是这样的:服务器与两个不同的应用程序的套接字通信,Java
应用1 < ------>服务器< ------>应用2
什么服务器确实是从APP 2后VAR1,写到app1,然后从app1读取var2并将其写入到app2。就像这样:
while(true){
var1 = app2stream.readInt();
app1stream.writeInt(var1);
var2 = app1stream.readDouble();
app2stream.writeDouble(var2);
}
我的问题是,在某些时候我在我的服务器验证码:
app1.accept();
app2.accept();
这意味着,无论是什么,以及鉴于服务器始终运行,app1是应该先连接的服务器,因为app1.accept()是一种阻塞方法。
有没有办法解决这个问题?如果允许这两个应用程序连接到服务器,无论谁先“来”,然后等待服务器继续执行上述代码,那将是非常好的。我可以为accept()部分使用线程,然后将流传递给另一个线程?我读了一些关于频道的内容,但有点偏差,任何例子都会很棒。
您是否考虑过JMS实现。这听起来像是它的设计。 – karakuricoder 2011-04-05 16:37:23