Показать сообщение отдельно

  #17  
Старый 30.12.2008, 23:29
Dobby007
Познающий
Регистрация: 07.09.2008
Сообщений: 55
Провел на форуме:
163517

Репутация: 57
Отправить сообщение для Dobby007 с помощью ICQ
По умолчанию

Цитата:
Сообщение от bons  
полностью код не просматривал, но что бросилось в глаза:
Код:
strncpy(temp,szRecvBuff,4);   //четыре байта содержащие размер пакета
в переменной содержащей размер будут содержаться нули значит strncpy не будет работать правильно
Ну у меня максимальный размер пакета - 772. Если пакет занимает 72 байта, то остальные два символа переменной temp станут равными "-". Также и в остальных случаях. "-" будет ставится вместо, так сказать "недостающих цифр" Так что с этим все норм должно быть.

Цитата:
Сообщение от bons  
И еще - функция recv может еще возвратить 0 если соединение корректно завершено удаленным узлом. Не мешало бы это обрабатывать.
Так мне то это зачем? У меня как только заканчивается передача файла (не важно - успешно или с ошибкой), цикл прекращается...
Цитата:
Сообщение от bons  
вообще tcp есть потоковый протокол, то есть твой алгоритм не должен зависеть от того, пришли ли данные одним пакетом или несколькими. А у тебя кажется зависит...
У меня количество пакетов принятых клиентом и посланных сервером равны. И еще я же говорил, что текстовые файлы он моментом передает (без каких-либо ошибок), а с бинарными только че-то тупит.
Цитата:
Сообщение от bons  
для пересылки файлов есть замечательная функция TransmitFile
лучше юзай ее
Про ТрансмитФайл слышал, только вот где ее искать? В winsock2.h ее нету.

P.s. Спасибо кстати за оперативный ответ.
 
Ответить с цитированием