TCP Server может передать файл клиенту или обязательно FTP?

TSP Server может предать TSP Client клиенту или обязательно FTP ?

Это очень странный вопрос, как вы это делаете с FTP?

FTP и TCP находятся на разных уровнях OSI.

FTP выше и внутри использует TCP.

передать что?

Я пока никак не делаю но как только поставила на одну форму FTP и TCP и поробовала активировать FTP порт 8884 и TCP порт 8888. TCP сразу перестала конектится TCP клиент-сервер. Хотя FTP и TCP находятся на разных портах

Предать файл

TCP передаёт байты. А вот что вы туда положите файл, картинку или данные из базы это дело ваше. Вам нужно придумать протокол и его реализовать. Клиент в праве обратиться к серверу(сервису) с запросом файла или части файла и запросом контрольной суммы. Сервер подготавливает ответ в виде массива байт и отправляет.

Вот только когда передавать будете вы должны вначале передавать размер массива иначе клиенту будет не ясно сколько вычитывать. И сколько ждать.

И вообще надёжность сетей TCP/IP не велика за 1 минуту можно легко схлопатать потерю пакета с последующим зависанием соединения, а за сутки и искажения бит в пакете. Так что защит надо будет понаписать.

получается без FTP не обойтись?

Помогите с FTP

Смотря что нужно.
TCP можно использовать для чего угодно.
Ну а про возможные проблемы с надежностью, необходимость продумать протокол и прочие сложности низкоуровневых протоколов — это ж ко всему относится, что вы с TCP делаете, а не только к отправке файлов.

Разве TCP его сам не переотправит?

и это он вроде ж тоже сам разруливает чексуммами.

https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Network_function

TCP is a reliable stream delivery service which guarantees that all bytes received will be identical and in the same order as those sent. Since packet transfer by many networks is not reliable, TCP achieves this using a technique known as positive acknowledgement with re-transmission . This requires the receiver to respond with an acknowledgement message as it receives the data. The sender keeps a record of each packet it sends and maintains a timer from when the packet was sent. The sender re-transmits a packet if the timer expires before receiving the acknowledgement.

Скорее всего дело в чем-то другом, а не в добавлении FTP.
Если просто убрать его с формы, то не заработает же?)

И да и нет. Если шлюз или принимающий сетевое устройство переполнен он сообщает о ошибке. И тогда ОС будет повторно отправлять с целью устранения ошибки. Но если ответное сообщение потерялось, то облом. И всё зависает на неопределенный срок в плоть до бесконечности.

Тому есть причины из TCP разрабатывался для военных. А у них был режим маскировки они отправляют сообщения в пустоту и не повторяют. Что-бы враг не мог перехватить. А для связистов напротив нужны были повторы отправки. Поэтому комитет RFC не стал включать в протокол TCP повторную отправку.
А решил отдать на откуп приложениям. Протокол верхнего уровня Apllication protocol решает как ему поступить. Если при отправки мы получаем ошибку TimeOut то приложение решает слать или не слать повторно.
Поэтому браузер и держит по 2 соединения на сайт. Если в течении 3-х секунд не получается отправить данные он переключается на второе соединение и шлёт запрос повторно. Если оба соединения в течении 60 секунд не получили данных, то соединение разрываются.

  1. Там слабая контрольная сумма. Она может справиться только с единичными ошибками в пакете и не может справиться с двойными ошибками. т.е при двойной ошибке пакет может иметь правильную контрольную сумму. И тем самым плохой пакет может проскочить через проверку.
  2. Их проверка как правило отключена, так как снижает скорость работы на дешёвых сетевых картах.
1 лайк

Можешь помочь с сервером
image

телепатирую, что где-то не указан адрес.

все указано проект скинут