Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
4 / 4 / 7
Регистрация: 18.11.2013
Сообщений: 53

Отправка UDP пакета - два лишних байта

04.07.2014, 16:34. Показов 2178. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ проблема с формирование буфера для отправики через udp socket!
Сформировал буфер для отправки! при выводе на STDIN все нормально, но когда отправляю его sendto(...) вылазят 2 лишних байта, которых соответственно не видно в STDIN,

C
1
2
3
4
char count[4];   //переменная при каждой отправке содержит разные значения
char txbuf[20];
 
sprintf(txbuf,"test:test,%4s$",count);
printf("%s",txbuf) покажет строку например: test:test,12E3$
а когда отправляю sendto(), в tcpdump вижу типа: test:test,12E3..$ или test:test,12E3T.$

sizeof(count) - 4 байта
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2014, 16:34
Ответы с готовыми решениями:

Отправка пакета (UDP)
День добрый Как организовать передачу пакета (UDP) из любого участка кода? Имеется в виду отправка пакета из любой Активити. ...

Отправка udp пакета
Есть проект, во вложениях. Передача и прием udp пакета. Помогите сделать так, чтобы сообщение склеивалось из введенных данных из трех и...

Atmega 162, два USART, одновременный приход/отправка байта
Доброе время суток. Есть Atmega 162 в которой два USORT. Для каждого обрабатывается прерывание на получение/отправку байта. Вопрос...

5
Заблокирован
04.07.2014, 18:12
попробуй занулить массив, а потом записать
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
04.07.2014, 23:22
А нулевой байт не забываешь выставлять в конце строк?
0
4 / 4 / 7
Регистрация: 18.11.2013
Сообщений: 53
05.07.2014, 02:17  [ТС]
имею такую привычку заполнять буффер '\0' при инициализации и перед каждым новым заполением, дело в самой переменной, но не могу понять в чем именно! пробовал немного смещать эту переменную(в другом месте буфера данные её помещать, и эти 2 байта появляются там же)

Добавлено через 3 минуты
проблема решилась увеличением размера count на 1 байт, но почему появлялись 2 байта не знаю, если есть у кого то такой же опыт поделитесь!
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.07.2014, 12:53
gyplex, вам только что korvin_ верно все сказал.
Цитата Сообщение от gyplex Посмотреть сообщение
sprintf(txbuf,"test:test,%4s$",count);
Спецификатор s это вывод строки с нулевым завершающим байтом. А где у вас нулевой завершающий бит в вашем массива из четырех чаров?
И естественно
Цитата Сообщение от gyplex Посмотреть сообщение
проблема решилась увеличением размера count на 1 байт
потому как теперь в пятом чаре содержится нулевой завершающий бил.

P.S.
Цитата Сообщение от gyplex Посмотреть сообщение
почему появлялись 2 байта
Там могло появиться все что угодно. Пока ноль не встретится при переборе адресов памяти все будет считаться продолжением строки. Хоть сто байт.
1
4 / 4 / 7
Регистрация: 18.11.2013
Сообщений: 53
10.07.2014, 09:31  [ТС]
понятно, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2014, 09:31
Помогаю со студенческими работами здесь

Файл записыват лишних байта
Нужно скопировать данные из одного файла и создать другой, это работает, только добавляет ещё 4 байта в новый , как это исправить ...

Передать 4 байта по протоколу UDP
Юпатов Дмитрий, Как упростить Ваш пример UDPchat? Задача: сервер выдаёт в цикле таймера для всеобщего пользования постоянно изменяющийся...

Ошибка Отправки Байта По Протоколу Udp
пробую написать сервер работающий с протоколом UDP который получает от клиента 2 числа считает их сумму и результат отправляет обратно. Вот...

Разбор udp пакета
Доброго времени суток! Такой вопрос возник. Я принимаю пакет UDP. В нем хранятся данные для разных функций. Необходимо раскидать...

Передача пакета по UDP
Помогите, пожалуйста, передать структуру данных с помощью компонентов Indy 9 IdUDPClient и IdUDPServer. Cледующий код не работает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru