Qt|Qt自动获取本机IP与TCP客户端绑定IP和端口 - Qt学习
【Qt|Qt自动获取本机IP与TCP客户端绑定IP和端口 - Qt学习】客户端使用特定的端口号与服务器进行通信,这是在进行网络编程开发时候经常容易遇到的问题。这篇博客是关于网络编程中客户端编写的小总结。
绑定端口号 在Qt的Socket开发中,有丰富的函数可以调用,要实现客户端绑定指定的端口,只需要在创建Socket之后,调用bind(port)函数进行端口的绑定即可。
绑定IP和端口 直接调用QHostAddress构造函数产生一个IP地址,调用bind()函数的另一个重载函数bind(IP,port)进行IP和端口的绑定。为了调试与上网工作两不误,这里有一个小技巧,将电脑网卡配置为多IP,客户对调试的IP进行绑定,同时不影响主IP的正常使用,可以参照我的博客“Windows同时使用两个IP上网”。截取部分代码如下
QHostAddress localIP = QHostAddress("30.252.22.10");
IP = IPaddrLineEdit->text();
port = portLineEdit->text().toInt();
clientSocket->abort();
if(clientSocket->bind(localIP,42005))
{
qDebug() << "1 LocalHost:" << localIP.toString();
qDebug() << "2 localPort:" << clientSocket->localPort();
}
clientSocket->connectToHost(IP,port);
自动搜索本机IP 获取本机所有IP,QNetworkInterface类中提供了一个便利的静态函数allAddresses(),用于返回一个QHostAddress主机地址列表。参考自https://blog.csdn.net/liang19890820/article/details/52273986。下面是获取本地IPv4的代码实现
QList list = QNetworkInterface::allAddresses();
foreach (QHostAddress address, list)
{
if(address.protocol() == QAbstractSocket::IPv4Protocol)
{
if(address.toString().contains("127.0.")) continue;
qDebug() << "Address : " << address.toString();
}
else if (address.isNull())// 主机地址为空
continue;
}
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 使用composer自动加载类文件
- 人脸识别|【人脸识别系列】| 实现自动化妆
- EditText默认不获取焦点弹出键盘
- whlie循环和for循环的应用
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- 【实用教程】4种获取无水印视频素材的方法
- 插件化无法获取或找到.so文件
- win7删除新建不自动刷新
- 浅析(成人情趣用品智能无人自动售货机是新零售的下一个风口吗())