我希望创建一个小程序来传输数据(字符串,数字数据,文档,图像和音频)。 我已经读过UDP不会检查数据包是否到达目的地(因此很容易丢失数据),而TCP会重新发送丢失的数据包。
如果我在通过交叉连接线连接的两台计算机之间传输数据,是否会出现大数据丢失问题(使用UDP)?我假设不存在因为数据仅移动几米并且不通过任何其他硬件(例如路由器/服务器)。
我做了很少的网络编程,所以这是一个简短的冒险,而不是使用记忆棒/ FTP / Filesharing等转移 数据。
答案 0 :(得分:1)
听起来你的数据并不能处理丢失的任何数据包,因此除非你要对数据进行校验和汇总并验证所有内容是否正确,否则请使用TCP。
如果数据包丢失,那么您必须计划丢失数据包或计划丢失数据。
编辑:
距离肯定会影响数据包的丢失,如果电缆足够长,您将体验到100%的损失。现在的问题是,您是否会看到损耗与以太网规格范围内的电缆长度有所不同。从理论上讲,如果您的电缆符合规格,那么您不会丢失数据包,但这并不能解决环境问题。您可以使用非常短的电缆长度,该电缆长度与具有严重数据损坏的AC电源线并行运行。
您是否可以接受数据丢失。如果没有,那么你应该使用TCP。
答案 1 :(得分:1)
使用TCP。它旨在确保按顺序完成和准确的数据传输。 UDP不是那些。数据包可能会被丢弃在路径的任何位置,包括在发送计算机内。数据包可以出于任何原因重新订购 - UDP不关心订单。您可能可以忽略的是数据损坏的可能性 - 像这样的直接传输不会出现此类问题。
但严重的是,使用TCP。