Привет, кто-нибудь может сказать мне, как написать код для отправки файлов с одного компьютера с Linux на другой компьютер с Linux с использованием протокола передачи udp? У меня был код для передачи строк с одного компьютера на другой. Я хочу знать, как передавать файлы. Я был бы благодарен, если бы кто-нибудь помог мне, большое спасибо заранее ..

2
balaji 13 Мар 2011 в 19:31
Не надо; UDP не является надежным протоколом, поэтому вам придется реализовать последовательность и повторную передачу самостоятельно. Предпочитайте TCP для передачи файлов.
 – 
Fred Foo
13 Мар 2011 в 19:41
Вы помните, что в UDP нет исправления ошибок? Можете ли вы принять это при передаче файлов?
 – 
Pete Wilson
13 Мар 2011 в 19:41
Есть ли какое-то приложение для передачи файлов UDP, которое реализует такие вещи, как TCP, под капотом? Он должен работать даже в системах, где TCP работает плохо, и его можно настроить без прав администратора.
 – 
Vi.
7 Май 2011 в 18:17

1 ответ

Это нетривиальное и к тому же бессмысленное занятие, так как для его эффективного выполнения вам придется заново изобретать TCP.

Для «простого» способа сделать это попробуйте реализовать TFTP. TFTP — очень глупый протокол, в котором каждый кадр подтверждается индивидуально, и отправитель ждет ответа, прежде чем отправить следующий кадр. Это не очень хороший способ передачи файлов и намного хуже, чем TCP.

Я думаю, что TFTP был разработан для реализации с минимальным количеством кода (а не для эффективности). Исторически он использовался сетевыми загрузчиками, которые иногда должны жить в крошечном ПЗУ (историческое ограничение).

В зависимости от задержки и пропускной способности вашей сети, подтверждение отдельных кадров и ожидание подтверждения перед отправкой следующего приведет к очень низкой производительности (если ваша сеть не имеет чрезвычайно малой задержки и низкой пропускной способности). , которые обычно не идут рука об руку).

1
MarkR 13 Мар 2011 в 19:50