Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 386
1

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

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

Author24 — интернет-сервис помощи студентам
По 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2014, 14:32
Ответы с готовыми решениями:

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

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

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

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

26
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 386
16.06.2014, 18:14  [ТС] 21
Author24 — интернет-сервис помощи студентам
alexey_rage, 161- это было в другой программу настроено, для работы с платой определенной, я уже точно не помню за давностью времени. В этой программе выделены порты 20000 и 20001
0
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
17.06.2014, 09:27 22
Честно говоря, я уже готов расписаться полном своем бессилии помочь решить вашу проблему.
Может кто-то более опытный что-то подскажет.
Практически такой же код, как у вас, в моих проектах работает без проблем.
0
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 386
18.06.2014, 13:46  [ТС] 23
alexey_rage, у меня такое бывает мистика
0
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 272
23.06.2014, 11:58 24
Цитата Сообщение от 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
Сообщений: 386
23.06.2014, 16:12  [ТС] 25
NafNaf, и как его проверять? Пример взят из книги, там так сделано. И приходит то не мусор, а нормальные данные. Просто, когда пытаюсь записать номер порта и адрес, то в переменные записывается какая то ерунда
0
596 / 396 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
23.06.2014, 16:33 26
Цитата Сообщение от Aline_u Посмотреть сообщение
и как его проверять? Пример взят из книги, там так сделано.
Видимо NafNaf имелл ввиду, что чтение происходит, до того, как произошла проверка условия hasPendingDatagrams().
Отличие циклов while(...){...} и do{...}while(...) в том, что в первом случае тело цикла выполняется только если условие - истина, а во втором случае тело цикла выполняется как минимум один раз, а только затем происходит проверка условия.
1
41 / 32 / 12
Регистрация: 15.04.2013
Сообщений: 386
23.06.2014, 16:52  [ТС] 27
alexey_rage, попробую цикл переделать
0
23.06.2014, 16:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 16:52
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru