2024-05-08发表2025-03-15更新QT14 网络编程主机信息查询123456789101112QT += network#include <QHostInfo> #include <QNetworkInterface>QList<QHostAddress> addList=host.addresses();//查找主机信息aHost.protocol();//协议QHostInfo::localHostName();//本地主机名QHostInfo hostInfo=QHostInfo::fromName(hostName); //本机IP地址QHostInfo::lookupHost(hostname,this,SLOT(lookedUpHostInfo(QHostInfo)));//异步方式查找主机ip QList<QNetworkInterface> list=QNetworkInterface::allInterfaces();QList<QNetworkAddressEntry> entryList=aInterface.addressEntries();TCP通信1234567891011121314151617181920212223//Server#include <QtNetwork>//网络相关都包含QTcpServer *tcpServer=new QTcpServer(this); //TCP服务器QString IP=ui->comboIP->currentText();//IP地址quint16 port=ui->spinPort->value();//端口tcpServer->listen(addr,port);QTcpSocket *tcpSocket=tcpServer->nextPendingConnection();//TCP通讯的Socket//发送一行字符串,以换行符结束QString msg=ui->editMsg->text();QByteArray str=msg.toUtf8(); str.append('\n');//添加一个换行符 tcpSocket->write(str);//读取缓冲区行文本while(tcpSocket->canReadLine()) ui->plainTextEdit->appendPlainText(+tcpSocket->readLine());if (tcpServer->isListening()) //tcpServer正在监听{ tcpServer->close();//停止监听}//客户端断开连接时 tcpSocket->deleteLater(); tcpServer->close();;//停止网络监听123456//ClientQTcpSocket* tcpClient=new QTcpSocket(this); //创建socket变量QString addr=ui->comboServer->currentText();quint16 port=ui->spinPort->value();tcpClient->connectToHost(addr,port);tcpClient->disconnectFromHost();UDP123456789101112131415161718192021#include <QUdpSocket>QUdpSocket *udpSocket=new QUdpSocket(this);udpSocket->bind(port)//绑定端口 //读取收到的数据报 while(udpSocket->hasPendingDatagrams()) { QByteArray datagram; datagram.resize(udpSocket->pendingDatagramSize()); QHostAddress peerAddr; quint16 peerPort; udpSocket->readDatagram(datagram.data(),datagram.size(),&peerAddr,&peerPort); QString str=datagram.data(); }QString msg=ui->editMsg->text();//发送的消息内容 QByteArray str=msg.toUtf8(); udpSocket->writeDatagram(str,targetAddr,targetPort); //发出数据报 向指定的端口和IPudpSocket->writeDatagram(str,QHostAddress::Broadcast,targetPort);//广播udpSocket->abort();//断开连接和重置socket组播12345678910QUdpSocket *udpSocket=new QUdpSocket(this);QHostAddress groupAddress=QHostAddress(IP);//组播地址udpSocket>setSocketOption(QAbstractSocket::MulticastTtlOption,1);//Multicast路由层次,1表示只在同一局域网内if (udpSocket->bind(QHostAddress::AnyIPv4, groupPort, QUdpSocket::ShareAddress))//先绑定端口{ udpSocket->joinMulticastGroup(groupAddress); //加入多播组}//退出组播udpSocket->leaveMulticastGroup(groupAddress);//退出组播udpSocket->abort(); //解除绑定HTTP123456789#include <QDesktopServices> //直接打开文件使用#include <QtNetwork>QUrl newUrl = QUrl::fromUserInput(urlSpec);//URL地址QNetworkAccessManager networkManager;//网络管理QNetworkReply *reply = networkManager.get(QNetworkRequest(newUrl)); //网络响应reply->readAll();reply->deleteLater(); 14 网络编程https://bubuweiying.site/14网络编程/作者步步为营发布于2024-05-08更新于2025-03-15许可协议#QT