Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 在局域网中创建多个聊天室_Sockets_Networking_Lan_Chatroom - Fatal编程技术网

Sockets 在局域网中创建多个聊天室

Sockets 在局域网中创建多个聊天室,sockets,networking,lan,chatroom,Sockets,Networking,Lan,Chatroom,我想在局域网中创建多个聊天室,有一个例子来定义我的问题:在WarIII中,选择LAN play,当您创建一个游戏室时,这个局域网中的每个人都会看到该聊天室被创建,并选择加入这个或那个聊天室。 那个么,当并没有一个唯一的服务器作为中转站来处理消息时,我如何创建这样的模型呢。 我只是想,当按下“创建空间”按钮时,我可以向局域网内的每个人广播ip和端口,但这将导致其他问题。发送和接收广播UDP数据包将正常工作;但如果出于某种原因不想使用广播,可以使用多播UDP。假设它是局域网上的文本聊天,带宽相当低,

我想在局域网中创建多个聊天室,有一个例子来定义我的问题:在WarIII中,选择LAN play,当您创建一个游戏室时,这个局域网中的每个人都会看到该聊天室被创建,并选择加入这个或那个聊天室。 那个么,当并没有一个唯一的服务器作为中转站来处理消息时,我如何创建这样的模型呢。
我只是想,当按下“创建空间”按钮时,我可以向局域网内的每个人广播ip和端口,但这将导致其他问题。

发送和接收广播UDP数据包将正常工作;但如果出于某种原因不想使用广播,可以使用多播UDP。假设它是局域网上的文本聊天,带宽相当低,所以我个人不认为使用广播是一个问题。

我再次思考,广播是一个解决方案。我提到的问题是,我认为当很多人打开或关闭软件或创建房间时,可能会有很多广播被侦听器触发。然后我被通知,当“很多”字样出现时,将会有服务器。那么,这个问题还有其他解决办法吗?谢谢!!如果您想最小化广播流量,您可以这样做:任何客户端只需要在第一次开始运行时发送一次广播数据包,以发现还有谁在那里。所有其他客户端都可以使用单播回复包响应广播包,当新客户端接收到回复时,它可以将回复来自的IP地址存储在某个列表中。从那时起,如果它愿意,它可以使用这些IP地址通过单播与每个客户机通信。(但事实上,上述内容不应该是必要的——即使有几十个客户端每个都发送几十个广播,现代局域网处理这些广播也不会有任何问题。WiFi可能是一个例外,它在处理广播或多播数据包时效率不高,因为它必须以尽可能低的sp发送这些数据包(需要确保所有听众都能收到)感谢您的耐心和帮助:)