Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 389

Как узнать номер порта и IP адрес в readDatagram?

16.06.2014, 14:32. Показов 5379. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По UDP получаю и считываю данные:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
 QHostAddress *host = new QHostAddress();
    quint16 *port;
 
    m_timerMain->stop();
    m_timerError->stop();
 
    do {
      rData.resize(m_udpClient->pendingDatagramSize());            
      m_udpClient->readDatagram(rData.data(), rData.size());
    } while (m_udpClient->hasPendingDatagrams());
в справке написано (ну насколько я поняла), что можно получить IP адрес и номер порта отправившего мне данные. Подставляю в строку host и port:
C++ (Qt)
1
  m_udpClient->readDatagram(rData.data(), rData.size(), host, port);
Если прописываю port в качестве аргумента то возникает ошмбка, какое то исключение и программа вылетает. Если пишу:
C++ (Qt)
1
  m_udpClient->readDatagram(rData.data(), rData.size(), host, 0);
то ошибки не возникает, но в host ничего не вижу, пишет <no such value> в окне просмотра значений переменных.

Подскажите, что делаю не так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2014, 14:32
Ответы с готовыми решениями:

Как узнать аппаратный адрес lan порта роутера?
Имеется adsl-модем ростелекома. Он ими же переконфигурирован для использования по технологии fttb. В качестве wan-порта назначен первый...

Адрес из readDatagram()
Здравствуйте! Я столкнулся с тем, что в Linux Qt-5.11, в Astra Linux 1.6, функция readDatagram() через ссылку возвращает не просто...

Преобразовать IP-адрес и номер порта
Нужно преобразовать IP-адрес и номер порта к сетевому порядку следования байтов, вывести на экран значения до и после преобразования в...

26
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 389
16.06.2014, 18:14  [ТС]
Студворк — интернет-сервис помощи студентам
alexey_rage, 161- это было в другой программу настроено, для работы с платой определенной, я уже точно не помню за давностью времени. В этой программе выделены порты 20000 и 20001
0
 Аватар для alexey_rage
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
17.06.2014, 09:27
Честно говоря, я уже готов расписаться полном своем бессилии помочь решить вашу проблему.
Может кто-то более опытный что-то подскажет.
Практически такой же код, как у вас, в моих проектах работает без проблем.
0
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 389
18.06.2014, 13:46  [ТС]
alexey_rage, у меня такое бывает мистика
0
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
23.06.2014, 11:58
Цитата Сообщение от Aline_u Посмотреть сообщение
do {
* * * rData.resize(m_udpClient->pendingDatagramSize()); * * * * * *
* * * m_udpClient->readDatagram(rData.data(), rData.size());
* * } while (m_udpClient->hasPendingDatagrams());
А мусор наверно из за того что Вы m_udpClient->hasPendingDatagrams() еще не проверили а уже пытаетесь что то считать.
0
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 389
23.06.2014, 16:12  [ТС]
NafNaf, и как его проверять? Пример взят из книги, там так сделано. И приходит то не мусор, а нормальные данные. Просто, когда пытаюсь записать номер порта и адрес, то в переменные записывается какая то ерунда
0
 Аватар для alexey_rage
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
23.06.2014, 16:33
Цитата Сообщение от Aline_u Посмотреть сообщение
и как его проверять? Пример взят из книги, там так сделано.
Видимо NafNaf имелл ввиду, что чтение происходит, до того, как произошла проверка условия hasPendingDatagrams().
Отличие циклов while(...){...} и do{...}while(...) в том, что в первом случае тело цикла выполняется только если условие - истина, а во втором случае тело цикла выполняется как минимум один раз, а только затем происходит проверка условия.
1
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 389
23.06.2014, 16:52  [ТС]
alexey_rage, попробую цикл переделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2014, 16:52

Как узнать? какой номер порта написать при создании Socket и ServerSocket (IP - localhost)?
Здравствуйте, впервые на Java пишу простенькое клиент-серверное приложение. Подскажите как узнать какой номер порта написать при создании...

Нужно ли в клиенте указывать ip-адрес сервера или достаточно указать номер порта
Доброго времени суток! :) Пытаюсь разобрать серверную программку, которая ждёт от клиента текстовое сообщение. Нужно ли в клиенте...

Имеется адрес базы данных, номер строки, номер столбца в БД, надо найти адрес ячейки на листе
У меня есть такая задачка, которую не могу решить. В ячейке используется формула ИНДЕКС, которая на листе История (shIndex) берет...

Как узнать ип адрес или мак адрес в порту коммутатора dell n3048 через веб интерфейc ?
Хочу так сделать, смотрю ип, мак адрес компьютера, потом через веб интерфей коммутатора dell n3048 узнаю в каком порту включен это...

Как программно получить адрес СОМ порта?
Пишу программу для прошивки Flash памяти прибора через СОМ порт. Выяснилось, что при ошибке заливки, прибор выдаёт ошибку и начинает...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru