双向连接

时间:2011-10-25 10:33:22

标签: java networking

我正在制作一个java程序&我希望这是服务器和客户端(使用套接字)。如何最好地实现这一目标?

5 个答案:

答案 0 :(得分:7)

如果您想要同时发送接收数据,那么单个常规套接字(在每台计算机上)就可以了。请参阅Socket.getInputStreamSocket.getOutputStream

通常的“服务器”/“客户端”区别只是归结为哪个主机正在侦听传入连接,以及哪些主机连接到这些主机。设置连接后,您可以从两端发送和接收。

如果您希望两台主机监听以获取传入连接,则只需设置ServerSocket并在两台主机上调用accept

相关链接:

答案 1 :(得分:0)

如果您希望程序执行相同的操作,无论它是服务器还是某个连接的客户端,我都可以想象将客户端SocketServerSocket.accept()都交给我们socket以相同的方法进行处理。

答案 2 :(得分:0)

如果您希望每个电台都充当服务器和客户端,例如p2p聊天,

你应该用ServerSocket实现一个线程,监听传入的连接,一旦有了连接,打开一个新的线程来处理它,这样当前的线程就会继续监听新的连接。

为了能够连接到其他人,简单地使用SocketAddress和Socket,在不同的线程中尝试连接到指定的服务器地址(例如,通过用户的朋友列表)

你可以通过谷歌搜索找到大量的聊天示例。

欢呼声。

答案 3 :(得分:0)

查看jgroups它是一个允许创建进程组的库,其成员可以相互发送消息。另一种选择是使用hazelcast ...

您也可以查看this question

答案 4 :(得分:-2)

执行此操作的最佳方法是在线程上运行服务器:

您运行server.accept()因此,当您的程序正在侦听该线程上的连接时,您可以在主线程上执行任何操作,甚至可以连接到另一台服务器,从而使程序既是服务器又是服务器。客户。