|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.04.2012, 15:31 | #1 |
Пользователь
Регистрация: 05.04.2012
Сообщений: 56
|
winSock передача файла
Сорс робит.
Клиент: PHP код:
сервер: PHP код:
Последний раз редактировалось Dizelektwo; 27.04.2012 в 19:56. |
27.04.2012, 17:34 | #2 |
Форумчанин
Регистрация: 26.09.2011
Сообщений: 176
|
возможно изза этого
Код:
Код:
|
27.04.2012, 17:52 | #3 |
Пользователь
Регистрация: 05.04.2012
Сообщений: 56
|
Спасибо тебе, но нет. Здесь в принципе разницы нет. count число байт, bufs размером в Count.
Ошибка именно в передаче файла, как я понял. recv считывает файл до первого пробела? Как в таком случае передать файл в не измененном виде? Заменить пробелы на другие знаки и при получение обратить процесс? Знаю что мои мысли абсурдны, но уже даже и догадок нет в чем проблема. Отправляю файл и опять передает только до первого ' '. Сейчас попробовал запустить передачу файла в цикле, по окончанию что бы отправлял "end" и закрывал бы соединение. Бестолку. Не понимаю в чем дело Отправлено : end ||| start. Получено(файл mm.txt): endHHHHHHHHHH. Со сплошным содержимым проблем нет, например строка "япишунасипипиприветмир" передается нормально. Последний раз редактировалось Dizelektwo; 27.04.2012 в 18:15. Причина: добавлено |
27.04.2012, 18:31 | #4 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
microbit +1
sizeof(bufs) === 4, по-любому |
27.04.2012, 18:37 | #5 | |
Пользователь
Регистрация: 05.04.2012
Сообщений: 56
|
f.hump
Цитата:
|
|
27.04.2012, 18:45 | #6 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
это не для чего, а к тому, что вместо того, чтобы объявлять вашу сплошную строку статически запихните ее в файл и зацените результат.
|
27.04.2012, 18:50 | #7 |
Пользователь
Регистрация: 05.04.2012
Сообщений: 56
|
Извините, видимо я совсем дуб. Но строка- то у меня в файле и я этот файл отправляю. Какое объявление? Единственное что я объявляю - это строка "ок".
Я прописываю путь к файлу, далее узнаю его размер в байтах. Конвертирую int и byte ф-ей itoa, передаю размер файла. Сервер выделяет буфер под файл. Далее отправляет "ок"- успех получения, далее клиент начинает отсылать файл. Count - это число байт, bufs- это массив размером в Count. Что мне следует исправить? Последний раз редактировалось Dizelektwo; 27.04.2012 в 19:00. |
27.04.2012, 18:59 | #8 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
сделайте как microbit предложил.
и когда делаете send тоже sizeof выкиньте Последний раз редактировалось f.hump; 27.04.2012 в 19:02. |
27.04.2012, 20:26 | #9 |
Пользователь
Регистрация: 05.04.2012
Сообщений: 56
|
Благодарю, все робит. Первый раз по какой-то причине результата это не дало. Позже удалил созданный раннее файл mm.txt и все пошло как по маслу. новый mm.txt полный дубликат передаваемого файла. Спасибо еще раз
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закачка файла на WinSock | t2skler | Общие вопросы Delphi | 14 | 19.11.2018 11:54 |
Передача файла по сети (winsock) | lol48 | Фриланс | 8 | 08.06.2011 21:44 |
передача данных на Winsock | megostudent | Win Api | 5 | 23.03.2011 17:35 |
Скачивание файла winsock | Horus92 | Работа с сетью в Delphi | 13 | 25.02.2011 13:29 |