чтение значений udp сервера
- Войдите на сайт для отправки комментариев
Пнд, 08/04/2019 - 19:18
вопрос как проверять значения при udp пакете и прислать на него ответ
[code]
[== Undefined ==]
udp.read(receivingBuffer, size);
receivingBuffer[size]=0;
if (receivingBuffer > 0) {
Serial.print(receivingBuffer);
if (receivingBuffer == "test") {
Serial.printf("yra");
}
[/code]
ответ прилитает в серийной порт как
test
каждой раз с новой строчки но проверить через if я могу в чем проблема?
Рекомендую, для начала, ознакомиться с правилами форума.
Вставьте код как положено и, заодно, изучите вот это.
См. описание memcmp, strcmp.
Боюсь, не будете. Помощь Вам уже оказана. В посте #2 я Вам написал что Вам нужно прочитать. Вы прочитали? Нет. Ну, и чего Вы ждёте?
ТС, дорогой!
Знаком "==" строки даже на джаве не сравниваются, не то, что на С++... прочти букварь, потом "Буратино", потом КиР. Ну а там уж втянешься... возможно.
спасибо всем уже починил
для тех кто будет гуглить ответ
Сколько будет дважды два? - для тех кто будет гуглить, выкладываю ответ...
спасибо всем уже починил
для тех кто будет гуглить ответ
Простите, Вы здоровы? Тем, кто будед углить это нельзя показывать!
Что у Вас делает тройка в строке №3? Почемц тройка. С единицей тоже будет работать! И с двойкой будет! Почему там тройка? (Подсказка: тройка - неправильно).
Какой udp-сервер, прости Господи!
ладно memcpy, а как вам первая строка?
Ещё лучше. Описаний нет, потому я и не обратил внимания :)
В общем, однозначно, прибиваем гвоздями в качестве учебника для тех, кто будет гуглить - чего людям мучиться, если готовое решение уже есть?
спасибо всем уже починил
для тех кто будет гуглить ответ
Строка номер 1 - условие всегда истинно, потому что адрес буфера - ненулевой, следовательно, эта проверка не имеет ни малейшего смысла. Возможно, вы хотели проверить, что буфер не пустой - тогда это делается не так.
Строка номер 3 - вы сравниваете первых ТРИ байта двух блоков памяти, т.е. сравнение идет не на "test", как вы могли подумать, а на "tes". Для осознания сего чудного факта достаточно послать по UDP (или как вы там вгоняете символы в приёмный буфер) не "test", а, скажем, "tesZ" - проверка сработает.
Вывод: пока знаний и умений по С++ -маловато, надо хотя бы внимательно читать описания к библиотечным функциям, которые используете. Ну и учебник по С++ - изучить будет совершенно не лишним.