2 myy1994 myy1994 于 2016.01.25 16:29 提问

qt UDP 如何绑定目的ip
lineEdit = new QLineEdit(this);
QString ip_dest;
udpSocket=new QUdpSocket(this);
port=69; //tftp
ip_dest =lineEdit->text();
udpSocket->bind(ip_dest,port);

报错 :G:\qt\projects\test\test125\mainwindow.cpp:24: error: C2664: “bool QAbstractSocket::bind(const QHostAddress &,quint16,QAbstractSocket::BindMode)”: 不能将参数 1 从“QString”转换为“const QHostAddress &”
原因如下: 无法从“QString”转换为“const QHostAddress”
没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.25 22:28
已采纳

你的字符串不能之间转换为QAddress
需要这么写

 udpSocket->bind(new QHostAddress(ip_dest),port);
91program
91program   Ds   Rxr 2016.01.25 16:35

bind 的代码中哪里?没有看到。

myy1994
myy1994 udpSocket->bind(ip_dest,port); 我想从单行文本中输入 目的地ip 然后绑定到udp的套接字
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.25 16:50

Qt学习之路_4(Qt UDP的初步使用)

 udpSocket = new QUdpSocket(this);//创建一个QUdpSocket类对象,该类提供了Udp的许多相关操作
    port = 45454;
    //此处的bind是个重载函数,连接本机的port端口,采用ShareAddress模式(即允许其它的服务连接到相同的地址和端口,特别是
    //用在多客户端监听同一个服务器端口等时特别有效),和ReuseAddressHint模式(重新连接服务器)
    udpSocket->bind(port, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
    //readyRead()信号是每当有新的数据来临时就被触发
    connect(udpSocket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()));

myy1994
myy1994 可是这样不能自己输入目的地IP啊
接近 2 年之前 回复
myy1994
myy1994 可是这样不能自己输入目的地IP啊
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!