我正在尝试使用UDP Adobe air将大文件发送到CPP。在传输大文件时,一些数据包丢失。如何找回丢失的数据包数据?我首先使用tcp连接客户机(Air)和服务器(Cpp)。建立连接后,我将开始文件传输。我计划使用tcp获取丢失的文件数据,然后使用tcp重新发送丢失的数据包。谁能告诉我怎么才能知道哪些包在传输过程中丢失了。谢谢。
发布于 2010-05-29 23:30:48
你能澄清一下到底是怎么回事吗?您说您正在通过UDP发送文件,但使用TCP连接到服务器-这两个协议在单个连接上是互斥的。
UDP不提供任何检测数据包丢失的机制(这就是TCP的用途),因此在默认情况下,您将无法确定数据包是否已丢失。您应该使用TCP发送文件,因为它为您管理发送/重新发送数据包。
如Air ServerSocket
文档(http://help.adobe.com/en_US/air/reference/html/flash/net/ServerSocket.html)所述:
保证所有通过TCP发送的数据包都会到达(在合理范围内)--任何丢失的数据包都会被重新传输。通常,TCP协议比UDP协议更好地管理可用网络带宽。大多数需要套接字通信的AIR应用程序应该使用ServerSocket和套接字类TCP,而不是DatagramSocket类UDP。
有关Air networking类的更多信息,请参阅此页面:
http://help.adobe.com/en_US/air/html/dev/WSb2ba3b1aad8a27b0-181c51321220efd9d1c-8000.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7cfb
发布于 2010-06-24 21:25:44
我的猜测是,tcp速度较慢,因为它会在数据包丢失时重新发送。所以这可能就是为什么它更慢的原因。但另一方面,检查哪些数据包丢失并通过udp重新发送它们也会花费更长的时间...
我会选择TCP而不是UDP
正如Sly所说,在这里使用udp似乎是错误的工具
https://stackoverflow.com/questions/2935029
复制相似问题