我正在开发一个等待N(比如5个)用户通过TCP套接字连接到web服务的web应用程序。服务器会跟踪连接的套接字的数量,一旦达到N,他就会同时发送一个(单个)文件,比如2MB。这里强调的是时间 - 他们都应该同时接收文件,而不是一个接一个地接收文件。使用TCP套接字发送文件到多个客户端
作为c#和socket编程的新手,我想知道在这种情况下最好的方法是什么? 我想到了以下内容: 服务器(异步)接收套接字连接,一旦达到N,循环遍历文件中的所有字节,并且在每次迭代时向每个字节发送一个千字节(或者更少?)连接的客户端 - 在我看来,这是最接近同时发送文件的方式。
我对如何实现这一点感到困惑。 任何帮助将是伟大的。 感谢
编辑: 通过接收在同一时间我的意思是,从技术上来说,我不希望服务器将文件发送到第一客户端,然后到第二,然后第三等,而是发一旦它离开了服务器,它就立刻变成了它们,它已经不在我的手中了!假设没有网络问题,并且客户端都非常接近(物理上),他们应该同时接收文件或多或少。 可能解决的办法是比我想象的更简单...
我想你正在寻找多播。 –
Ya多播概率 – rbtLong
不,可能不是。多播有严重的基础设施要求,不适用于互联网。在公司网络上,除非使用ICMP,否则它会泛滥网络。我非常喜欢它,但是根据这些信息推荐多播是严重的忽视,并且边界对网络没有任何线索。这可能适用于非组播基础设施(大多数公司都与互联网一样)。 – TomTom