我正在開發一個等待N(比如5個)用戶通過TCP套接字連接到web服務的web應用程序。服務器會跟蹤連接的套接字的數量,一旦達到N,他就會同時發送一個(單個)文件,比如2MB。這裏強調的是時間 - 他們都應該同時接收文件,而不是一個接一個地接收文件。使用TCP套接字發送文件到多個客戶端
作爲c#和socket編程的新手,我想知道在這種情況下最好的方法是什麼? 我想到了以下內容: 服務器(異步)接收套接字連接,一旦達到N,循環遍歷文件中的所有字節,並且在每次迭代時向每個字節發送一個千字節(或者更少?)連接的客戶端 - 在我看來,這是最接近同時發送文件的方式。
我對如何實現這一點感到困惑。 任何幫助將是偉大的。 感謝
編輯: 通過接收在同一時間我的意思是,從技術上來說,我不希望服務器將文件發送到第一客戶端,然後到第二,然後第三等,而是發一旦它離開了服務器,它就立刻變成了它們,它已經不在我的手中了!假設沒有網絡問題,並且客戶端都非常接近(物理上),他們應該同時接收文件或多或少。 可能解決的辦法是比我想象的更簡單...
我想你正在尋找多播。 –
Ya多播概率 – rbtLong
不,可能不是。多播有嚴重的基礎設施要求,不適用於互聯網。在公司網絡上,除非使用ICMP,否則它會氾濫網絡。我非常喜歡它,但是根據這些信息推薦多播是嚴重的忽視,並且邊界對網絡沒有任何線索。這可能適用於非組播基礎設施(大多數公司都與互聯網一樣)。 – TomTom