首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >局域网聊天设计

局域网聊天设计
EN

Stack Overflow用户
提问于 2011-12-12 05:35:06
回答 2查看 647关注 0票数 0

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

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

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-12-12 10:25:57

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

但是,如果您真的想采用客户机-服务器路由,则应该让服务器(也称为主机)在单个已知端口上接受TCP连接,然后让它使用select()或poll()多路复用传入的TCP连接,并将来自每个传入TCP套接字的任何数据转发到所有其他套接字。客户端可以通过TCP连接到这个众所周知的端口上的服务器,但是客户端必须知道要连接到哪个IP地址……或者通过让用户键入服务器的IP地址,或者通过某种发现机制(广播UDP分组可以用来实现该机制)。不过,这种方式的工作量要大得多。

票数 1
EN

Stack Overflow用户

发布于 2011-12-12 05:40:20

我完全赞成创建我自己的,但由于时间的限制,有时我会寻找像this这样的替代品,我以前在一家公司使用过它。真的很棒。但是如果你决定创建自己的代码,那么在你考虑代码之前,你必须首先规划出逻辑、结构、数据库等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8467681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档