2010-05-17 67 views
1

我想寫一個應用程序,將數據在互聯網上從服務器傳輸到多個客戶端在2400波特。每個客戶端的數據都是相同的,並且將它作爲UDP流發送也可以,因爲準確的數據準確性不是100%的必要條件,因爲數據格式中內置了校驗和,數據將會在循環中重複發送。實時數據流到多個客戶端

這樣做的最好方法是什麼?我想用C編寫服務器,但我不知道如何最好地將這些數據多播到不同的客戶端,這些客戶端將在全國各地接收。

我敢肯定,這似乎是一個非常嚴格的方式來執行我的項目,而不是使用某種類型的獲取命令,但我寧願這樣做,如果可能的話。

+0

什麼操作系統? IPv4還是IPv6?您應該可能谷歌'IP多播' – nategoose 2010-05-17 20:13:39

+0

Linux/Windows,沒關係,和IPv4。會做,謝謝。 – AriX 2010-05-17 20:19:27

回答

1

您可能希望看看單播這一點,特別是如果您的客戶端在多個目錄中。您應該能夠將TCP或UDP流量與您的數據一起發送到每個客戶端,特別是在帶寬需求很小的情況下。 IP組播對彼此靠近的網絡中的節點組最有效。

重複循環客戶端地址併發送數據。調節循環速率以限制數據速率。

注意可靠性問題:正確性不是UDP的唯一問題;您也沒有確認收到您的數據,也沒有訂購保證。

波特在這裏並不適用,因爲數據被分割成或多或少的離散塊。

+0

對,我不需要承認,我只是需要它被髮送出去。 就波特而言,我只需要在一定程度上限制速度。並不是我需要數據本身以2400波特出去,顯然這是互聯網,並不適用。問題是,數據最終會以2400波特的速率從PC傳輸到字符發生器sorta事物,所以我只需要不要太快地發送數據,以至於超過串行消息。我可能會在消息之間設置1秒的延遲,這應該會讓所有事情都變得好起來。 – AriX 2010-05-17 20:22:57

+0

至於單播,你是否建議我只將數據發送到每個IP?這可能是我最終做的。 – AriX 2010-05-17 20:24:57

+0

是的,我只是將數據分別發送到每個IP。如果我是你,我會用單播,睡眠延遲開始,並從那裏完善以滿足你的需求。 – WhirlWind 2010-05-17 20:41:17