LINUX.ORG.RU

Qt UDP поверх VPN

 , ,


0

2

Пишу программу, которая обменивается между клиентами в сети с аналогичными программами некой информацией. В локальной сети все заработало, а вот с VPN возникли проблемы, слот, который обрабатывает сигнал readyRead просто не вызывается, то есть информация как-будто бы проходит мимо. Wireshark на этом клиенте видит что пакеты с данными доходят, но сам Qt их не читает. В чем могут быть причины?

Слушатель:

#include <Interlocutor.h>
#include <QDebug>
#include <QDateTime>

Interlocutor::Interlocutor(QAudioFormat &format){
    socket = new QUdpSocket();
    socket->bind(QHostAddress::Any, 14433);
    QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
        if (!info.isFormatSupported(format))
            format = info.nearestFormat(format);
    output = new QAudioOutput(format);
    device = output->start();
    connect(socket, SIGNAL(readyRead()), this, SLOT(playData()));
}

void Interlocutor::playData()
{
    qDebug() << QDateTime::currentDateTime();
    while (socket->hasPendingDatagrams())
    {
        QByteArray data;
        data.resize(socket->pendingDatagramSize());
        socket->readDatagram(data.data(), data.size());
        device->write(data.data(), data.size());
    }
}

Отправитель:

#include "VoiceSender.h"

VoiceSender::VoiceSender(QAudioFormat &format, QString ip){
    input = new QAudioInput(format);
    QUdpSocket* socket = new QUdpSocket();
    socket->connectToHost(ip, 14433);
    input->start(socket);
}

★★

Последнее исправление: Chubakur (всего исправлений: 1)

UDP-пакеты какого размера получаются? Возможно проблема в MTU. При прохождении через туннель пакеты урезаются и становятся невалидными.

И ещё неплохо бы проверить файрволл.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Wireshark на этом клиенте видит что пакеты с данными доходят

И что? Он их будет видить и если пакеты доходят битыми (урезанными из-за MTU), и если их будет дропать iptables.

Deleted
()
Ответ на: комментарий от I-Love-Microsoft

wireshark не показатель. попробуй nc -ul 14433 и посмотри

dib2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.