首页 文章

短距离的TCP或UDP

提问于
浏览
0

我希望创建一个小程序来传输数据(字符串,数字数据,文档,图像和音频) . 我已经读过UDP不会检查数据包是否到达目的地(因此很容易丢失数据),而TCP会重新发送丢失的数据包 .

如果我在通过交叉连接的etherent直接连接的两台计算机之间传输数据,是否会出现大数据丢失问题(使用UDP)?我假设不存在因为数据仅移动几米并且不通过任何其他硬件(例如路由器/服务器) .

我做了很少的网络编程,所以这是一个简短的冒险,而不是使用记忆棒/ FTP / Filesharing等来传输数据 .

2 回答

  • 1

    听起来你的数据不能处理丢失的任何数据包,所以除非你要对数据进行校验和汇总并验证所有数据都是否存在,否则使用TCP .

    如果数据包丢失,那么您必须计划丢失数据包或计划丢失数据 .

    编辑:

    距离肯定会影响数据包的丢失,如果电缆足够长,您将体验到100%的损失 . 现在的问题是,您是否会看到损耗与以太网规格范围内的电缆长度有所不同 . 理论上,如果您的电缆符合规格,那么您不会丢失数据包,但这并不能解决环境问题 . 您可以使用非常短的电缆长度,该电缆长度与具有严重数据损坏的AC电源线并行运行 .

    您是否可以接受数据丢失 . 如果没有,那么你应该使用TCP .

  • 1

    使用TCP . 它旨在确保按顺序完成和准确的数据传输 . UDP不是那些 . 数据包可以沿路径的任何位置丢弃, including inside the sending computer . 数据包可以出于任何原因重新订购 - UDP不关心订单 . 您可能忽略的是数据损坏的可能性 - 像这样的直接传输不会出现这样的问题 .

    But seriously, use TCP.

相关问题