c# - 将数据从服务器顺序传输到多个客户端

标签 c# algorithm networking udp

我有一个应用程序,我想在其中包含网络模块,以便能够将数据发送到多个客户端(同一 WiFi 网络上的不同机器)。此应用程序每小时为每个客户端生成图像数据,并且必须将此数据发送到同一 WiFi 网络上的 10 个不同客户端。当所有客户端的数据传输完成后,所有客户端必须同时在屏幕上显示数据。

我以前没有开发过任何网络模块,并且在这方面的经验很少。我最初的搜索只是表明我可能应该首先以某种方式将数据传输到所有客户端,然后为客户端广播一个信号,让他们同时显示数据。我想知道对于这样的事情应该遵循的方法——服务器如何将图像数据发送给所有客户端?
我认为就我而言,它对时间的要求比可靠的数据传输更重要,所以我倾向于使用 UDP 来获得更快的传输。我知道我可以以排队的方式将数据发送给客户端,但是是否有一种机制可以知道网络上的哪些客户端正在等待数据?有没有一种client-register-with-server 的东西,通过它我可以记录所有必须发送数据的客户端?这在 UDP 中可能是 client-register 吗?

通过我的应用程序,我将能够在特定端口上创建 UDP 服务器套接字 - 但多个客户端如何顺序(每个客户端不能一起通知 obv.)通知我的服务器了解它们在网络上的可用性,然后我如何记录它们的主机地址/端口?

最佳答案

只是另一种方法:创建与用户数相等的线程数并从线程池加载它,对于每个客户端,将分配一个线程并建立一个 tcp 连接来发送图像并在每个客户端上有一个 tcp 监听器它将监听来自服务器的任何数据检索。

关于c# - 将数据从服务器顺序传输到多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228711/

相关文章:

c# - 如何发送客户端特定的受信任证书颁发机构来决定用户可以在 asp.net web 表单站点上使用哪些客户端证书

java - 查找本地网络中的所有IP地址

python - 遍历一个 Spaghetti Stack 并返回到一棵树

java - TCPdump使用正则表达式解析序列号

python - Ping 网络子网中的第一个可用主机

c# - 在 C# 中 move 鼠标(坐标单位)

c# - EF Core 查询存储过程映射到类型

带有 ref 参数的 c# 静态方法 - 一个好主意?

algorithm - 在不重复逻辑的情况下对项目进行分组

java - 反转 java.util.LinkedList 的最佳方法(如果可能的话)