我正在为服务器编写代码,该服务器将帮助不同平台上的两个不同应用程序相互通信。为了形象化一点,它会是这样的:
应用程序1<------>服务器<------>应用程序2
服务器所做的就是从app2中读取var1,将其写入app1,然后从app1中读取var2并将其写入app2。像这样:
while(true){<br/>
var1 = app2stream.readInt();<br/>
app1stream.writeInt(var1);<br/>
var2 = app1stream.readDouble();<br/>
app2stream.writeDouble(var2);<br/>
}
我的问题是,在某些时候我的服务器上有这个代码:
app1.accept();<br/>
app2.accept();
这意味着无论如何,考虑到服务器始终在运行的事实,app1 应该是第一个连接的服务器,因为 app1.accept() 是一种阻塞方法。
有什么办法可以解决这个问题吗?如果允许两个应用程序连接到服务器,无论谁先“来”,然后等待服务器继续执行上述代码,那就太好了。我可以仅将线程用于accept() 部分,然后将流传递给另一个线程吗?我读了一些有关 channel 的内容,但有点困惑,任何例子都会很棒。
最佳答案
关于java - 服务器与两个不同应用程序的套接字通信,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555247/