VS2019+QT5配置socket(tcp/ip socket网络通信)

一、简述

在使用vs+qt插件开发项目时,无使用qtcreator创建项目时的.pro文件(无法Qt += network),且无法直接通过cmke或qmake引入库文件,下面演示如何在vs+qt下面配置网络库,并使用tcp/ip协议进行socket通信

二、配置

1.首先默认已经配置好了vs+qt开发环境,且功能正常。

点击上边栏视图(V)-->其他窗口-->属性管理器 打开项目属性管理(若未配置属性表,直接右键解决方案打开属性管理器同理(右键解决方案-->属性))

2.在属性配置中找到Qt Project Settings 若无此选项,请注意版本是否一致

选择qt modules配置模块,选择下拉栏,选择select modules选择模块,tcp/ip socket通信所需模块在Network中,选择此项,(如需其他模块也可一次性勾选上)

勾选完成后可见模块栏多了network,确定保存属性配置后就可以引入头文件到项目中了(配置属性表的记得要右键保存)

3.可见头文件可以被包含进来了,可以使用以下代码测试

4.注意若头文件无法正常加载,或加载成功后运行却报错LNK2001无法解析的外部符号问题,只需要到属性表中再次查看模块是否正常加载进来即可,若没有,重新加载,若有,尝试关闭并重新打开项目或编译几次即可

5.代码测试:将这段代码放在自己的窗体构造函数中,若代码报错,请注意代码是否在窗体类内的构造函数内,若QTcpSocket报错,则说明未引入成功,请按照上述步骤排查,若qmessagebox报错,请包含其头文件QMessageBox或qmessagebox.h,若创建连接失败,请检查自己的网络连接、连接的服务端ip或端口输入是否正确,ip 端口是否存在且配置正常

-----YOUR PROGRAM
//...
//网络通信对象
QTcpSocket* socket;

//实例化socket对象
socket = new QTcpSocket(this);

// 连接到服务器
socket->connectToHost("your server ip", port);

if (socket->state() == QAbstractSocket::ConnectedState) {
    QMessageBox::information(NULL, "succeed", "tcp connected succeed:");
}
else {
    QMessageBox::information(NULL, "failed", "tcp connected failed:");
}
//...
-----YOUR PROGRAM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值