1. 程式人生 > >qt udp程式,在Windows中可以正常收取資料,到了Ubuntu中無法正常收取資料問題解決辦法

qt udp程式,在Windows中可以正常收取資料,到了Ubuntu中無法正常收取資料問題解決辦法

本人在開發qt udp程式的過程中遇到一個很奇怪的問題,同樣的程式,在windows中能夠正常收取資料,換到Ubuntu中就不行了,問題困擾了兩天,後來終於找到了解決辦法,問題如下:

一開始使用如下方法:

qLidarSocket = new QUdpSocket(this);
    QHostAddress serverAddress = QHostAddress("192.168.1.77");
    qLidarSocket->bind(serverAddress,2368);

解決衝突的辦法:

qLidarSocket = new QUdpSocket(this);
//採用ShareAddress模式(即允許其它的服務連線到相同的地址和埠,特別是
//用在多客戶端監聽同一個伺服器埠等時特別有效),和ReuseAddressHint模式(重新連線伺服器)
qLidarSocket->bind(2368,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint);

問題原因是地址衝突了.