兰聊天设计

时间:2011-12-11 21:35:06

标签: sockets lan

我正在尝试编写聊天应用程序,但我遇到了一些问题 我试图解决。该应用程序基本上是一个在Lan上运行的聊天应用程序。一个客户充当 主持人和其他客户可以连接到主持人并在他们之间公开聊天。我也想要一个客户启动的选项 与已连接的客户端进行私聊。那么这种情况发生的最佳方式是什么呢?例如,请求消息(哪个 包含客户端的IP地址)通过主机路由,然后如果请求的客户端想要连接,则它们启动连接 使用请求客户端的ip。这应该是一个单独的端口号。如果您的应用程序使用多个端口,这是否重要。

或者,当客户端连接到主机时,主机应该向他们发送带有ip地址的用户列表,然后客户端可以 尝试与其他客户端建立连接以进行私人聊天。

希望这一切都有意义。任何帮助将不胜感激

由于

2 个答案:

答案 0 :(得分:1)

如果您只对一个只需要在局域网上工作的快速聊天工具感兴趣,我建议让所有客户端在一个众所周知的端口号上发送和接收广播UDP数据包。然后根本不需要服务器,因此也不需要发现,事情也简单得多。

如果你真的想要去客户端 - 服务器路由,你应该让你的服务器(也就是主机)机器接受一个众所周知的端口上的TCP连接,然后让它使用select()或poll()多路复用传入的TCP连接,并将从每个传入TCP套接字进来的任何数据转发到所有其他套接字。客户端可以通过TCP连接到这个众所周知的端口的服务器,但是客户端必须知道要连接到哪个IP地址......要么让用户输入服务器的IP地址,要么通过一些发现机制(可以使用广播UDP数据包来实现)。这样做的工作要多得多。

答案 1 :(得分:0)

我全都是为了创造我自己的但是根据时间的限制,有时我会寻找像this这样的替代品我在之前工作过的公司里使用它。真的很棒。但是,如果您决定自己创建自己,首先必须在考虑代码之前绘制出逻辑,结构,数据库等等。