• 6396阅读
  • 3回复

[Sovled] QUdpSocket 监听不了端口 [复制链接]

上一主题 下一主题
离线billlee
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-26
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
Linux 平台,自己写的代码
一个 QUdpSocket* socket = new QUdpSocket;
先 socket->bind(listen_port, QUdpSocket::DontShareAddress);
这时用 netstat -l -u 查看可以看到 listen_port 已经打开
但只要调用 socket->writeDatagram, 在 writeDatagram 返回后可以发现数据没有发送出去(对方未收到)。这时再运行 netstat -l -u 发现就连自己监听的端口都关闭了。
可是奇怪的问题是, Qt Examples 里的 Udp 程序: Boardcast 和 Chat 编译链接后都正常。
大家有没有遇到过这样的问题呀?
[ 此帖被billlee在2010-09-29 13:30重新编辑 ]
离线billlee
只看该作者 1楼 发表于: 2010-09-29
问题已解决
原因是在传递 IP 和 Port 时使用了一个未经测试的类,导致 IP 出错
另外发现了, QUdpSocket 发送 datagram 时不是用 bind 的那个端口。发送失败时又会导致 bind 出问题,因此最好把发送 datagram 的 socket 和 监听的 socket 分开。
离线jackliu8722
只看该作者 2楼 发表于: 2011-01-10
引用第1楼billlee于2010-09-29 13:30发表的 :
问题已解决
原因是在传递 IP 和 Port 时使用了一个未经测试的类,

这个怎么说?

离线zpx037
只看该作者 3楼 发表于: 2011-05-01
回 1楼(billlee) 的帖子
汗,,,Lz怎么解决的哇
快速回复
限100 字节
 
上一个 下一个