我想开发简单的无服务器局域网聊天程序,只是为了好玩。我怎样才能做到这一点 ?我应该使用什么类型的架构?
去年我参与过TCP,UDP客户端/服务器应用程序Project.It很简单(服务器侦听某些端口/套接字,客户端连接到服务器端口等)。但我不知道如何开发“无服务器” “局域网聊天程序。我怎样才能做到这一点? UDP,TCP,多播,广播?或者程序应该像服务器和客户端一样吗?
答案 0 :(得分:10)
最简单的方法是使用UDP并简单地在整个网络上广播您的消息。 更高级的版本只是使用广播来发现网络中的其他节点。
您还必须考虑处理节点的丢弃,而不通知网络的其余部分。
答案 1 :(得分:1)
spread toolkit可能对你想要的东西有点矫枉过正,但这是一个有趣的起点。
来自blurb:
Spread是一个开源工具包,提供高性能的消息服务,可以抵御本地和广域网的故障。 Spread用作分布式应用程序的统一消息总线,并提供高度调整的应用程序级多播,组通信和点对点支持。传播服务范围从可靠的消息传递到具有交付保证的完全有序的消息。
Spread可用于许多分布式应用程序,这些应用程序需要高可靠性,高性能以及各成员子集之间的强大通信。该工具包旨在封装异步网络的挑战性方面,并支持构建可靠且可扩展的分布式应用程序。
Spread包含一个用户应用程序链接的库,一个在处理器组的每台计算机上运行的二进制守护程序,以及各种实用程序和演示程序。
Spread提供的一些服务和好处:
答案 2 :(得分:0)
苹果iChat就是您想象的产品的一个例子。它使用Bonjour(苹果的零配置网络协议)来识别LAN上的对等体。然后,您可以与他们聊天或进行音频/视频聊天。
我不完全确定Bonjour是如何在里面工作的,但我知道它使用多播。客户端在LAN上“注册”服务,Bonjour协议允许每个主机为特定服务提取主机目录(所有这些都没有集中管理)。