Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2013, 12:45   #1
arm9n
Пользователь
 
Регистрация: 24.07.2013
Сообщений: 19
Вопрос Приём данных из сокета в char*

Вот WinSock ф-ия для приёма данных из сокета:
Код:
int recv(
  SOCKET s,
  char *buf,
  int len,
  int flags
);
Данные пишутся в char*. Итак, сокет должен принять картинку jpg, видимо придётся её сначала записать в char*. Но в принимаемых данных есть байт 00, который воспринимается char* как конец строки, поэтому полностью принять данные не получается. Что делать?
arm9n вне форума Ответить с цитированием
Старый 03.08.2013, 12:56   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

char* - это просто указатель на массив из char, не более того. Нигде не сказано, что в нем не могут иметь место нули - это вопрос интерпретации данных, так что пишите смело в char*.
waleri вне форума Ответить с цитированием
Старый 03.08.2013, 13:00   #3
arm9n
Пользователь
 
Регистрация: 24.07.2013
Сообщений: 19
По умолчанию

дело в том, что в дебаг режиме приём (и соссна сам char*) обрывается как раз в том месте, где в jpg файле впервые встречается 00
arm9n вне форума Ответить с цитированием
Старый 03.08.2013, 14:27   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Перестаньте смотреть на полученные данный как на строку текста.
waleri вне форума Ответить с цитированием
Старый 03.08.2013, 14:42   #5
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

В массив char запишется столько байт, сколько нужно. Функция recv возвращает кол-во принятых байт. И пофиг, нули там или что-то еще. Есть только числа, нету символов и строк! это абстракция.
bananasus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приём данных в программу от COM порта gbvsl C# (си шарп) 8 21.06.2013 10:43
Приём данных с COM порта Евгений55 Microsoft Office Excel 3 05.01.2013 16:46
Приём/передача данных delphi7 -Jack- Работа с сетью в Delphi 2 27.06.2012 07:51
Перехват данных сокета. Lui C/C++ Сетевое программирование 2 22.12.2011 20:22
Приём данных с com порта kyc0k Помощь студентам 3 28.03.2008 15:04