我正在尝试编写一个聊天应用程序,但是有一些我想解决的问题。 该应用程序基本上是在Lan上运行的聊天应用程序。 一个客户端充当主机,其他客户端可以连接到主机并在彼此之间公开聊天。 我还希望客户端与已连接的客户端开始私人聊天的选项。 那么,实现此目标的最佳方法是什么。 例如,请求消息(包含客户端的ip地址)是否应该通过主机路由,然后如果被请求的客户端想要连接,则它们使用请求客户端的ip来发起连接。 也应该在单独的端口号上。 如果您的应用程序使用了多个端口,那有关系吗?

或者,无论何时客户端连接到主机,主机都应向其发送具有IP地址的用户列表,然后客户端可以尝试与其他客户端建立连接以进行私人聊天。

希望这一切都有道理。 任何帮助,将不胜感激

谢谢

===============>>#1 票数:1

如果您只需要通过LAN工作的快速而又简单的聊天功能,我建议让所有客户端在一个知名端口号上发送和接收广播UDP数据包。 然后,根本就不需要服务器,因此也不需要发现,而且事情也变得简单得多。

但是,如果您确实想采用客户端-服务器路由,则应让服务器(即主机)计算机在单个已知端口上接受TCP连接,然后使它使用select()或poll()来多路复用传入TCP连接,并将来自每个传入TCP套接字的所有数据转发到所有其他套接字。 客户端可以通过TCP在这个众所周知的端口上连接到服务器,但是客户端将必须具有某种方式来知道要连接到哪个IP地址...或者通过在服务器中键入用户的IP地址来实现。通过某种发现机制(可以使用广播UDP数据包来实现)。 但是,这种方式还有很多工作要做。

===============>>#2 票数:0

我所有的创造我自己的,但根据时间的限制,有时我看起来像替代这个我把它用在一个公司我在工作之前。 真的很棒。 但是,如果您决定自己创建代码,那么您甚至必须先考虑逻辑,结构,数据库等等,然后再考虑代码。

  ask by kiznore translate from so

未解决问题?本站智能推荐: