![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
Достались в наследство исходники клиент-серверного приложения. Причем клиент написан на дельфях, а сервер на С++.
Необходимо организавать передачу файлов от клиента к серверу, с условием "чтобы срочно, а то без премии останешься". Пробовал отправять так: Код:
Код:
Может есть у кого какие нибудь соображения как лучше передавать и принимать файлы. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Ситуация такая. TCP протокол не пакетный а потоковый. Отправляем мы килобайт одной командой, а в пункт назначения эти данные прийдут по очереди. Сначала первый килобайт, потом еще 2 килобайта и остаток потом подтянется. Проверка на строку "size" уже "опасна", т.к. чисто теоретически может прийти сначала "siz", а следующий вызов recv уже прочитает оставшуюся "e". Обычно реализуют что-то вроде пакетов на базе TCP. Прописывают заголовок и как-то помечают где пакет кончается (в заголовок, например, добавляется размер передаваемых данных).
Соответственно, сначала принимаем по сети заголовок: Код:
Кроме того, в WinSock есть функция специальная для передачи файла по сети. Что-то вроде FileTransfer (уже не помню как она называется). Ну и можно глянуть тут |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
Не знал. Спасибо за ликбез, после сдачи программы обязательно почитаю маны по протоколам.
P.S. Нашел эту функцию. TransmitFile называеться, и как я ее раньше не заметил. Передает файлы замечательно, только по моему ограничение у нее в 2 гб. Проблема решена. Последний раз редактировалось hiho; 10.02.2010 в 21:57. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запись на прием | Kardi | PHP | 6 | 22.09.2012 16:00 |
"2540:TCP"= 2540:TCP:oeiuq | AlexSh | Безопасность, Шифрование | 0 | 06.07.2009 10:28 |
Прием SMS | SERG1980 | Свободное общение | 0 | 04.10.2007 16:10 |