我正在尝试使用 Qt 创建一个 UDP 终端(自定义)——有谁知道是否有用于处理 IP 地址从 ASCII 到数字(十六进制)的转换的小部件或类,或者我是否必须编写那我自己?基本上是“192.168.1.1”->“0xC0A80101”。我不反对写它,只是想知道是否有人知道它是否已经存在。尝试搜索,运气不佳。谢谢大家
最佳答案
这里的关键类是QHostAddress如下:
main.cpp
#include <QHostAddress>
#include <QTextStream>
#include <QString>
int main()
{
QTextStream standardOutput(stdout);
// You could use this, too:
// standardOutput.setIntegerBase(16);
// standardOutPut.setNumberFlags(QTextStream::ShowBase);
quint32 ipAddress = QHostAddress("192.168.1.1").toIPv4Address();
QString hexIpAddress = QString::number(ipAddress, 16);
QString prefixedUppercaseHexIpAddress = QString("0x%1")
.arg(uppercaseHexIpAddress);
standardOutput << prefixedUppercaseHexIpAddress;
return 0;
}
主程序
TEMPLATE = app
TARGET = main
QT = core network
SOURCES += main.cpp
构建并运行
qmake && make && ./main
输出
0xC0A80101
关于c++ - Qt ASCII转IP函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21123440/