1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 77
1

QUdpSocket работа с андроидом

21.09.2023, 21:59. Показов 406. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здорово народ помогите разобраться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
TClient::TClient(QWidget *parent)
    : QWidget{parent}, TextRead{new QTextEdit},
    TextWrite{new QTextEdit}, Send{new QPushButton{"Отправить"}},
    Exit{new QPushButton{"Выход"}}, soket{new QUdpSocket}
{
 
    soket->bind(QHostAddress::Any, 8080);
    connect(soket, SIGNAL(readyRead()), this, SLOT(readyRead()));
    connect(Send, SIGNAL(clicked(bool)), this, SLOT(Sent()));
    connect(Exit, SIGNAL(clicked(bool)), this, SLOT(Ext()));
 
 
    this->resize(300, 300);
    TextRead->resize(200, 100);
    TextWrite->resize(150, 100);
    Send->resize(100, 50);
    Exit->resize(100, 50);
 
    QHBoxLayout* phb1 = new QHBoxLayout;
    QHBoxLayout* phb2 = new QHBoxLayout;
    QHBoxLayout* phb3 = new QHBoxLayout;
 
    phb1->addWidget(TextRead);
    phb2->addWidget(TextWrite);
    phb2->addWidget(Send);
    phb3->addWidget(Exit);
    phb3->setAlignment(Qt::AlignmentFlag::AlignBottom);
 
    QBoxLayout* pcmb = new QVBoxLayout;
    pcmb->addLayout(phb1);
    pcmb->addLayout(phb2);
    pcmb->addLayout(phb3);
 
    this->setLayout(pcmb);
 
 
}
//===================================================
void TClient::readyRead()
{
 
    QByteArray buffer;
    buffer.resize(soket->pendingDatagramSize());
 
    //QHostAddress sender;
    //quint16 sendport;
 
    soket->readDatagram(buffer.data(), buffer.size());
 
 
    TextRead->setText(TextRead->toPlainText() + buffer + '\n');
}
 
//=================================================
void TClient::Sent()
{
    QByteArray Data;
 
    Data.append(TextWrite->toPlainText().toLocal8Bit());
    soket->writeDatagram(Data,QHostAddress::Any, 4660);
 
}
//============================
void TClient::Ext()
{
    QCoreApplication::quit();
}
вопрос я запускаю один клиент на компе(линукс) второй на тел(андроид) не отправляются и не принимаются сообщения перед запуском на одном из клиентов менял порты отправки и прослушивания местами т.е андроид порт прослушки 8080 отправляю на 4660 на линуксе наоборот, Но когда запускаю два клиента на линуксе проделывая тоже самое меняя порты все работает.
Телефон и комп выходят в сеть с разными провадерами.Подскажите где косяк.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2023, 21:59
Ответы с готовыми решениями:

Удалённое управление андроидом
Всем трям. Подскажите, пожалуйста, нормальную программу для удалённого управления андроидом. Чтобы...

101.ru не дружит с андроидом?
В общем, такой вопрос - слушаю радио 101.ru и столкнулся с пренеприятнейшей траблой - на любом...

создать папку на смартфоне с андроидом
пытаюсь создать папку, пробую разными вариантами, не получается QString basePath =...

Подскажите игры на смарт-TV с андроидом
И не забывайте, что есть только мышка и клава. Нет там G-сенсора и мультитача... ;)

5
1458 / 692 / 307
Регистрация: 02.05.2020
Сообщений: 1,569
23.09.2023, 20:26 2
Цитата Сообщение от Garald48 Посмотреть сообщение
Но когда запускаю два клиента на линуксе проделывая тоже самое меняя порты все работает.
линуксы тоже оба на разных провайдерах?
0
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 77
25.09.2023, 21:09  [ТС] 3
kapbepucm, Доброго времени суток. Нет Линукс это одна машина, просто запускаю два клиента. Проблема клиент на телефоне не видит клиента на компе
0
1458 / 692 / 307
Регистрация: 02.05.2020
Сообщений: 1,569
26.09.2023, 20:00 4
Цитата Сообщение от Garald48 Посмотреть сообщение
Проблема клиент на телефоне не видит клиента на компе
а не в сети ли проблема? UDP порты открыты, кода надо проброшены? IP адреса верные?

Добавлено через 4 минуты
Цитата Сообщение от Garald48 Посмотреть сообщение
Нет Линукс это одна машина, просто запускаю два клиента.
попробуйте сначала 2 разные машины, но в 1 локальной сети подружить
0
1 / 1 / 0
Регистрация: 03.05.2019
Сообщений: 77
27.09.2023, 22:01  [ТС] 5
kapbepucm, Добрый вечер. Локально все работает, ком подключен к сети через кабель, тел по wifi к той же сети, но как только выключаю wif и начинаю работать через провайдера (МТС) ничего не работает
код сервер(комп)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
TServer::TServer(QObject *parent)
    : QObject{parent}, soket{new QUdpSocket}
{
 
    if (soket->bind(QHostAddress("192.168.0.10"), 1243) > 0){
 
        qDebug() << "OK" << '\n';
       // Send();
    }
 
    connect(soket,SIGNAL(readyRead()), this, SLOT(readyRead()));
 
}
//=============================================
void TServer::Send()
{
    QByteArray Data;
    Data.append("Все Ok!");
    soket->writeDatagram(Data, QHostAddress(sender), sendport);
}
//==============================================
void TServer::readyRead()
{
    QByteArray buffer;
    buffer.resize(soket->pendingDatagramSize());
 
 
 
    soket->readDatagram(buffer.data(), buffer.size(), &sender, &sendport);
 
    if(buffer.toStdString() == "привет"){
 
        Send();
    }
 
    qDebug() << "Message from: " << sender.toString();
    qDebug() << "Message port: " << sendport;
    qDebug() << "Message: " << buffer.toStdString().c_str() << '\n';
 
}
код клиент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
TClient::TClient(QWidget *parent)
    : QWidget{parent}, TextRead{new QTextEdit},
    TextWrite{new QTextEdit}, Send{new QPushButton{"Отправить"}},
    Exit{new QPushButton{"Выход"}}, soket{new QUdpSocket}
{
 
    if (soket->bind(QHostAddress::AnyIPv4, 1244 )> 0 )
    {
        TextRead->setText(TextRead->toPlainText() + "OK" + '\n');
 
    }
    connect(soket, SIGNAL(readyRead()), this, SLOT(readyRead()));
    connect(Send, SIGNAL(clicked(bool)), this, SLOT(Sent()));
    connect(Exit, SIGNAL(clicked(bool)), this, SLOT(Ext()));
 
 
    this->resize(300, 300);
    TextRead->resize(200, 100);
    TextWrite->resize(150, 100);
    Send->resize(100, 50);
    Exit->resize(100, 50);
 
    QHBoxLayout* phb1 = new QHBoxLayout;
    QHBoxLayout* phb2 = new QHBoxLayout;
    QHBoxLayout* phb3 = new QHBoxLayout;
 
    phb1->addWidget(TextRead);
    phb2->addWidget(TextWrite);
    phb2->addWidget(Send);
    phb3->addWidget(Exit);
    phb3->setAlignment(Qt::AlignmentFlag::AlignBottom);
 
    QBoxLayout* pcmb = new QVBoxLayout;
    pcmb->addLayout(phb1);
    pcmb->addLayout(phb2);
    pcmb->addLayout(phb3);
 
    this->setLayout(pcmb);
 
 
}
//===================================================
void TClient::readyRead()
{
 
    QByteArray buffer;
    buffer.resize(soket->pendingDatagramSize());
 
 
 
    soket->readDatagram(buffer.data(), buffer.size(), &sender, &sendport);
 
 
    TextRead->setText(TextRead->toPlainText() + buffer + "  " + sender.toString() +'\n');
}
 
//=================================================
void TClient::Sent()
{
    QByteArray Data;
 
    Data.append(TextWrite->toPlainText().toLocal8Bit());
    soket->writeDatagram(Data, QHostAddress("192.168.0.10"), 1243);
 
}
//============================
void TClient::Ext()
{
    QCoreApplication::quit();
}
может что-то неправильно.....
0
1458 / 692 / 307
Регистрация: 02.05.2020
Сообщений: 1,569
28.09.2023, 10:59 6
Делаю ставку, что в firewall первого устройства, которое соединяет ваш комп-сервер с сетью провайдера (вероятно какой нибудь рутер) установлена дефолтная блокировка блочить все входящие udp пакеты которые не related/established,
а также не настроено, что приходящие udp пакеты из интернета, которые приходят на порт 1243 этого устройства, надо перенаправлять на тотже порт, но на адрес 192.168.0.10
0
28.09.2023, 10:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2023, 10:59
Помогаю со студенческими работами здесь

Создание XML файлов Андроидом
Требуется написать программу, которая будет создавать XML файл с некоторым кодом. Я не имею понятия...

gsm шлюз под андроидом
задача такая, я подконекчиваюсь к мобиле од андроидом по wifi и хочу с компа заставить свою мобилу...

Форматирование флешки под андроидом
доброго времени суток, уважаемые. собственно вопрос: существует ли возможность определить файловую...

Прошивка китайфона fly e 135tv андроидом
Всем доброго времени суток. Загорелся идеей прошить свой старенький, гвардейский fly андроидом. В...

Управление сторонним устройством андроидом через usb
Привет! Есть датчик, который посылает результаты измерения на комп по кабелю usb. Нужно заменить...

Не работает вай фай с андроидом Tp-link TD-W9970
Есть роутер Tp-link td-w9970 , подключаюсь к нему через wifi, на Honor 7a, подключается, но пишет...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru