目前我正在開發視頻會議項目。對於這個我使用pwnat進行nat遍歷。 pwnat基於udp隧道。我使用TCP連接進行數據傳輸。paket drop and split in udp tunnel
我的問題是,當我發送一個數據包時,它無法在其目的地端正常到達。有時它會丟棄數據包,並且多次將數據包分解(拆分)成碎片。
請幫助我..
如何發送和收到一個包分成單件。所以,我可以正確繪製圖像並播放聲音。
任何類型的幫助將被appriciated。
在此先感謝
目前我正在開發視頻會議項目。對於這個我使用pwnat進行nat遍歷。 pwnat基於udp隧道。我使用TCP連接進行數據傳輸。paket drop and split in udp tunnel
我的問題是,當我發送一個數據包時,它無法在其目的地端正常到達。有時它會丟棄數據包,並且多次將數據包分解(拆分)成碎片。
請幫助我..
如何發送和收到一個包分成單件。所以,我可以正確繪製圖像並播放聲音。
任何類型的幫助將被appriciated。
在此先感謝
TCP沒有數據包的概念。一個TCP流是一個連續的字節流 - 如果你想在這個字節流中有一個結構,你必須通過實現某種成幀機制來強加它。一個簡單的就是「長度前綴」 - 在發送應用程序級幀時,首先發送幀的長度,然後發送數據。
感謝您的回覆 我對網絡瞭解不多,因爲我不知道新的無線程序。通過查看我的日誌文件。我發現在發送數據前,數據長度爲16384字節,接收端流長度爲11300,下一個5084字節的數據流。但有時它會收到16384字節的全長數據。 這可能會發生,因爲pwnat正在通過tcp在udp上工作,它基於udp隧道的概念。 – 2010-05-04 09:26:05
@SR Dusad:TCP **不具有流內個別消息的概念。如果你發送16384字節,你最終將接收到這些16384字節 - 但你可以用任意大小的任意數量的塊接收它們。你的應用程序必須處理它。 – caf 2010-05-04 11:17:38
謝謝caf: 你的回答幫助我瞭解了這個概念 – 2010-05-06 08:21:16
這將是我的猜測,隧道TCP與UDP將擊敗使用TCP的點,並消除任何真正的順序協議的可能性,但這只是一個猜測。 – 2010-05-01 08:12:18