我正在尝试编写一个聊天应用程序,但是有一些我想解决的问题。 该应用程序基本上是在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

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

1回复

如何在局域网上使用聊天脚本?

我想在我的家庭网络上使用聊天程序。 我已在本地主机上成功运行的代码。 我想与我的家庭网络上的系统通信并运行客户端脚本。 为了在本地主机上运行,​​服务器被声明为“本地主机”。 在LAN上使用该地址需要使用什么地址? 我的程序结构需要如何更改以适应任务? 服务器的代
1回复

连接到局域网

我正在编写一个平台游戏,我认为为在同一网络上玩游戏的人添加多人游戏模式会很酷。 我的问题是我将如何查询通过某个端口打开的所有可用计算机以进行连接以玩多人游戏,然后如何与它们建立连接。 我以为我可以创建一个套接字并尝试在每个端口上进行连接,但是如果我不知道其他计算机的IP地址,该怎么办。 在
4回复

Java局域网游戏

我花了一些时间学习Java中的套接字编程,并设法制作了几个利用套接字的简单应用程序。 (即时通讯程序,井字游戏,基本操作)对于我的程序,我使用了ClientServer与ServerSocket和Socket类的关系。 到目前为止,我已经在同一台计算机上测试了所有游戏,这意味着客户端和服务器
3回复

需要澄清局域网应用概念

最近,我使用套接字在Java中开发了一个简单的聊天应用程序。 运行正常。 但是现在我要制作一个可以通过局域网(如IPMSG)进行通信的应用程序。 功能将是 消息发送。 文件发送。 语音聊天。 群聊。 按需加密/解密。 这些是要包括的基本功能
1回复

客户端无法连接到局域网中的服务器程序

我在C ++中有这个类构造函数: 具有端口号的客户端应用程序 5555无法连接到LAN网络中另一台PC上的服务器程序。 我尝试了其他端口号。 太。 如何解决呢? 错误消息是: :这是client.cpp: 编辑2:SocketClient
1回复

在Wifi局域网,Android中进行通信

我有两个设备1作为热点主机,而其他设备作为客户端连接。 两者都是android设备。 我试图通过tcp编程来做到这一点,但无法做到这一点。 有人知道如何正确执行吗?
1回复

使用局域网上的流套接字进行套接字编程

我正在学习进程间通信。 我想创建可以收听分布在实际局域网上的客户端的服务器。 我有IP地址以及这些机器的符号名称。 我可以在单机上实现服务器和客户端,但我不知道如何在网络上的不同机器上执行相同操作。 任何人都可以指导我找到合适的资源或者告诉我该怎么做吗? 谢谢
1回复

如何将Arduino的Serial转换为socket out put(局域网)

下面的草图在草图的末尾有一个串行输出。 “(Serial.println(stringTwo);)”如何将其转换为套接字输出。 我想通过局域网使用ac#程序读出信息。 =========== 草图 我已经开发了一个程序,可以使用USB串行端口读取上面的草图。 现在我需要
2回复

无法通过局域网将文件从服务器发送到客户端

这是服务器端和客户端的代码段,用户可以通过它们向服务器请求文件。 服务器将发送文件。 有两个问题: 服务器端发送空文件。 尝试在局域网中运行代码时,它给出了ioexception 我不明白为什么服务器发送空文件,请帮忙。 服务器端代码: 客户端代码
1回复

如何使服务器客户端通过局域网自动发现

我有两个通过局域网进行通信的项目“服务器”和“客户端”, 这是我的服务器代码 } 这是我的客户 } 但是如您所见,我必须知道服务器的IP地址,有没有一种方法可以使服务器和客户端自动发现? 我已经尝试过,可以在一台PC上工作,但是使用LAN却失败了。 我