Название: прием файлов по tcp Отправлено: PB от Июль 23, 2011, 00:31 доброго времени суток.
стоит задача, написать программу для передачу файлов по сети. программа свёрнута в трей, и одновременно является как клиентом, так и сервером. подвис на части с передачей файла. общий алгоритм - открываем файл для чтения, поблочно копируем. если есть у кого соображения или идеи, высказывайте, это может хорошенько помочь. вот сам проект http://rghost.ru/15476971 так же интересует одровременное существование окон клиента и сервера. потому что на данном этапе программа устроенна как клиент. с библиотекой Qt работать начал недавно, информации на эту тему маловато можно почерпнуть из книг. Название: Re: прием файлов по tcp Отправлено: merke от Июль 23, 2011, 06:46 Как из вариантов, видел здесь на форуме:
передача: Код
прием: Код
Название: Re: прием файлов по tcp Отправлено: TukiNov от Июль 23, 2011, 08:55 Писал я такой клиент-сервер. Мои советы:
1. Делай сразу и сервер и клиент многопоточными 2. Перед передачей файла отправляй что ты будешь передавать, ну например имя файла,размер файла 3. У меня в конце передачи файла сделано следующие, я сверяю контрольные суммы, и если совпадают сообщаю об успешной отправке/приеме и разрываю соединение Название: Re: прием файлов по tcp Отправлено: brankovic от Июль 23, 2011, 10:13 я сверяю контрольные суммы, и если совпадают сообщаю об успешной отправке/приеме и разрываю соединение а что, бывает не совпадают при передаче по tcp? Название: Re: прием файлов по tcp Отправлено: kuzulis от Июль 23, 2011, 15:19 1. TC, почитай про модель ISO/OSI.
2. Почитай спецификацию на любой из протоколов для передачи файлов: X-modem (и аналогичные), FTP и т.п. И поймешь, что то что ты делаешь - это полная х#$ь. ЗЫ: И почему бы не использовать QFtp ? Название: Re: прием файлов по tcp Отправлено: PB от Июль 24, 2011, 19:04 Вот еще пара вопросов. Как определить список доступных компьютеров в локальной сети? Есть код, но он определяет только собственный хост:
Код: QString ipAddress; И еще. В метод connectToHost() мы передаем адрес хоста и порт. Откуда взять порт? Название: Re: прием файлов по tcp Отправлено: Orfus от Июль 25, 2011, 10:01 ... А если у человека уже есть готовое соединение для каких то своих нужд( чат какой или управление клиентским приложением) и он хочет через него организовать передачу, зачем ему открывать ещё один порт? Или QFtp позволяет передавать по уже открытому и используемому? ???И поймешь, что то что ты делаешь - это полная х#$ь. ЗЫ: И почему бы не использовать QFtp ? Вот еще пара вопросов. Как определить список доступных компьютеров в локальной сети? 1) Широковещательные рассылки (QUdpSocket и погнал)2) Пинговать (изврат) ... В метод connectToHost() мы передаем адрес хоста и порт. Откуда взять порт? Стучись по всем портам или храни порт по умолчанию. Можешь ip и порт в широковещательной передавать. В 99% программах связанных с сетью видел окно настроек с возможностью указать порт. Название: Re: прием файлов по tcp Отправлено: PB от Июль 28, 2011, 15:17 Написал код передачи. Почему то после 33 килобайт останавливается waitForBytesWritten. Может кто знает в чем проблема? Вот код:
Код: void FTClient::sendPartOfFile() |