Russian Qt Forum

Qt => Работа с сетью => Тема начата: qtист от Декабря 13, 2013, 10:28



Название: QUdpSocket
Отправлено: qtист от Декабря 13, 2013, 10:28
В общем есть две машины:
с одной запускаю бродкастовский udp пакет:
Код
C++ (Qt)
udpSocket = new QUdpSocket(this);
QByteArray datagram = "PRIBOR ";
udpSocket->writeDatagram(datagram.data(), datagram.size(),
QHostAddress::Broadcast, 45454);
на другой принимаю:
Код
C++ (Qt)
udpSocket = new QUdpSocket(this);
//udpSocket->bind(45454, QUdpSocket::ShareAddress);
udpSocket->bind(45454);
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()));
 
processPendingDatagrams()
{
..........что делаю
}

1.когда эти машины в сети - всё хорошо
2.когда соединяю их друг с другом по eth - то пакет udp не приходит.
Пакеты tcp все проходят.
что я делаю не так?


Название: Re: QUdpSocket
Отправлено: CuteBunny от Декабря 13, 2013, 13:51
Извините, если не в тему, но просто интересно, что значит соединить компьютеры по eth?
И в чем разница, "когда эти машины в сети"?


Название: Re: QUdpSocket
Отправлено: qtист от Декабря 13, 2013, 13:53
В сети-это в нашей lan
по eth - это напрямую от сетевой до сетевой


Название: Re: QUdpSocket
Отправлено: CuteBunny от Декабря 13, 2013, 14:05
Рискну предположить, что в соединении типа point-to-point (через eth), просто нельзя делать broadcast... Да и зачем он там нужен? Могу ошибаться :)