java - 一台机器可以使用Java中的socket同时充当客户端和服务器吗?

标签 java networking

我有一个由 5 台机器组成的网络。一台机器称为领导者(服务器),另一台称为跟随者(客户端)。我在领导者端使用 ServerSocket(使其成为服务器)并在追随者端使用 Socket 使其成为客户端。这个结构运行得很好。

现在,我想向上述网络添加新的更改。我想允许关注者(客户)向其他关注者发送消息。我怎样才能实现这一目标?

是否可以通过让每个follower(客户端)都有Socket(与leader连接)和ServerSocket(与follower连接)来实现?

期待您的回复。

最佳答案

领导者可以拥有追随者列表(每个追随者可以有一个唯一的ID)。如果一个follower需要将消息传递给另一个follower,他需要将数据传递给Leader,然后Leader可以将其发布给预期的follower,或者领导者可以将其广播给所有follower。 Leader 可以为它收到的每个连接运行不同的线程,并维护一个用于广播的客户端池。

关于java - 一台机器可以使用Java中的socket同时充当客户端和服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516903/

相关文章:

java - 在这种情况下,当我想停止 SwingWorker 时,我做错了什么?

java - 如何使用有序映射 Iterator.previous()

java - JComboBox 只能使用一次并且不会更新

linux - 获取套接字对等 IPS linux

java - 多人 2D 游戏中的数据结构 (Java)

java - 将字符串转换为日期并计算日期差

java - foreach里面remove的时候,需要退一步吗

linux - 亚马逊AWS机器无法连接

ios - 如何在 NSURLSession 中禁用每个套接字的多个请求?

c++ - 我怎么会空,没有抓包?