| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Потоковая передача файлов клиент-сервер |
| Автор: Loveb 23.5.2011, 12:01 | ||||
| Знаю, что тема уже сто раз обсуждалась, но никак не могу добить до конца свою передачу файла. Использую CAsyncSocket. Текст передается и принимается нормально, а вот с файлом беда(( VC++ 2008 Передача:
m_pConnectSocket - наследник класса CAsyncSocket Прием:
Файл посылаю небольшой, всего пару байт. В поток при передаче пишется вроде верно, в дебагере высвечивает даже символы, которые записаны в передаваемом txt файле. Принимается файл правильного размера, вот только вместо нужных символов пустота(((( Так же пробовал на готовой работающей программе клиент-сервер, написанной на Delphi. 1) передача на С++, прием на Delphi: сохраняется файл правильного размера, но не с пустотой, а с ерундой какой-то. 2) передача на Delphi, прием на С++ В nRead пишет правильный размер а при попытке записи в поток вылетает с ошибкой An unhandled exception of type 'System.AccessViolationException' occurred in mscorlib.dll Additional information: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. При приеме после строчки nRead = m_pConnectSocket.Receive(&Buffer, file_size, 0); nRead отображает правильный размер, а длина Buffer оказывается равной нулю. Думаю из-за этого ошибка памяти, но почему становится равной нулю не понимаю(( |
| Автор: Loveb 27.5.2011, 09:07 | ||
| Попробовал с %, пишет ошибку operator '%' can only be applied to an instance of a ref class or a value-type Тут действительно косяк с объявлением буфера и указатель/не указатель Решил проблему объявив еще один буфер и тупо переписав данные из одного в другой
Но это как-то каряво + дополнительные затраты ъ Если кто знает как сделать по-человечески, буду очень признателен )) |
| Автор: asmdzen 31.5.2011, 13:04 | ||
главное не забыть:
) |