我正在嘗試使用UDP Adobe air向CPP發送大文件。在傳輸大文件時,一些數據包丟失。我如何檢索丟失的數據包數據?我首先使用tcp將客戶端(空)與服務器(cpp)連接起來。建立連接後,我開始文件傳輸。我打算使用tcp獲取缺少文件的數據,然後使用tcp重新發送丟失的數據包。任何人都可以告訴我如何才能知道在傳輸過程中丟失了哪些數據包。謝謝。我們如何避免在UDP Flex中丟失數據包?
0
A
回答
1
您能否澄清一下發生了什麼?你說你通過UDP發送文件,但通過TCP連接到服務器 - 兩個協議在一個連接上是互斥的。
UDP沒有提供任何檢測數據包丟失的機制(這就是TCP的用途),因此默認情況下,您將無法確定數據包是否丟失。 您應該使用TCP來發送文件,因爲它可以爲您管理髮送/重新發送數據包。
由於空氣ServerSocket
文檔(http://help.adobe.com/en_US/air/reference/html/flash/net/ServerSocket.html)中指出:
的所有數據包[發送過來TCP]保證到達(合理的) - 任何丟失的數據包重傳。通常,TCP協議比UDP協議更好地管理可用網絡帶寬。大多數需要套接字通信的AIR應用程序應該使用ServerSocket和Socket類[TCP],而不是DatagramSocket類[UDP]。
在空中網絡類的更多信息,請參見本頁面:
http://help.adobe.com/en_US/air/html/dev/WSb2ba3b1aad8a27b0-181c51321220efd9d1c-8000.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7cfb
0
我的猜測,TCP是慢,因爲它不會再發送當一個數據包丟失。所以這可能是爲什麼它更慢。但另一方面,其檢查數據包迷路和UDP重新發送他們也將需要更長的時間......
我會去的,而不是TCP UDP的
像狡猾說,UDP似乎是錯誤的工具這裏使用
相關問題
- 1. Android UDP數據包丟失
- 2. 50%udp數據包丟失
- 3. udp數據包丟失
- 4. Flex中的數據包丟失計算
- 5. 如何理解丟失在UDP中的數據包?
- 6. 如何避免在CentOS中從protobuf軟件包中丟失gzip_stream.h
- 7. udp vs tcp數據包丟失
- 8. 平均UDP數據包丟失和數據包重新排序
- 9. 使用UDP從Memcached中獲取數據包時丟失數據
- 10. 如何避免與log4j丟失日誌
- 11. Linux丟棄UDP數據包
- 12. 如何在UIImagePickerController卸載我的控制器時避免數據丟失?
- 13. 避免在ASP.NET MVC中丟失視圖
- 14. 在Windows Server,Java中監視UDP數據包丟失
- 15. 如何避免接收方在UDP中未準備好接收數據包?
- 16. 避免丟失幀glium
- 17. 如何避免在回調中丟失「this」?
- 18. 如何避免在Linux內核中的printk日誌丟失
- 19. libpcap setfilter()函數和數據包丟失
- 20. 如何調試數據包丟失?
- 21. 當我在iOS中更新我的應用程序時,如何避免數據丟失?
- 22. UDP在這裏丟失了我的數據包的一部分嗎?
- 23. 丟失系統日誌數據包
- 24. 如果GIT不跟蹤文件重命名,我們如何避免在合併中丟失這些更改?
- 25. 升壓ASIO丟棄UDP數據包
- 26. 爲什麼Socket.BeginReceive從UDP丟失數據包?
- 27. 丟失UDP數據包的機會是多少?
- 28. 防止TCP連接導致UDP數據包丟失
- 29. UDP數據包丟失模擬和概率
- 30. UDP連接導致套接字丟失數據包?
這個。 UDP適用於流式傳輸視頻,您不想重新發送丟棄的數據包。 – fenomas 2010-05-30 03:29:01
嗨狡猾紅衣主教,謝謝你的迴應。對不起,我的問題並不清楚。我的客戶端是空氣應用程序,服務器是cpp。我使用tcp將客戶端連接到服務器,並在得到確認後確認它是否已連接...我使用UDP再次連接並使用UDP傳輸文件。現在在大文件的時候,我正在服務器端丟失數據包。現在我只想獲取丟失數據包的列表,並希望客戶端使用tcp重新發送丟失的數據包。然後我的空氣應用程序使用UDP重新發送丟失的數據包。 – 2010-05-31 07:33:41
總之,對於連接確認和數據包丟失數據,我想使用tcp和使用UDP進行文件傳輸。一切都很順利......除了丟包。現在我想知道丟失的數據包列表並重新發送......我如何獲取丟失數據包的數據。 – 2010-05-31 08:46:21