【发布时间】:2011-04-05 16:33:35
【问题描述】:
我正在为服务器编写代码,该代码将帮助不同平台上的两个不同应用程序相互通信。为了形象化一点,它会是这样的:
App1服务器App2
服务器所做的是从 app2 获取 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 实现。这听起来正是它的设计目的。
标签: java blocking serversocket