我想开发简单的无服务器局域网聊天程序,只是为了好玩。我怎样才能做到这一点 ?我应该使用什么类型的架构?
去年我参与了 TCP,UDP 客户端/服务器应用程序项目。它很简单(服务器监听特定端口/套接字,客户端连接到服务器的端口等。)但我不知道如何开发“无服务器” "局域网聊天程序。我怎样才能做到这一点? UDP、TCP、组播、广播?或者程序应该像服务器和客户端一样运行吗?
最佳答案
最简单的方法是使用 UDP 并在整个网络上简单地广播您的消息。 更高级一点的版本是仅使用广播来发现网络中的其他节点。
- 每个节点都维护一个已知对等节点的列表。
- 消息通过 TCP 发送到所有已知的对等点。
- 当一个节点启动时,它会发出一个 UDP 广播来发现其他节点。
- 当节点接收到发现广播时,它会将“自身”发送到广播源,以使其自身为人所知。接收节点将广播者添加到它自己的已知对等点列表中。
- 当一个节点退出网络时,它会发送另一个广播以通知其余节点他们应该从他们的列表中删除掉线的客户端。
您还必须考虑在不通知网络其余部分的情况下处理节点的退出。
关于tcp - 开发无服务器局域网聊天程序求助!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383731/