一、加载配置文件
1.在代码目录下创建一个client的配置文件
将服务器的IP和port信息填入配置文件中,将配置文件作为资源文件添加到项目中
程序运行时加载文件中的数据
2.进行本地测试,使用本地环回测试IP:127.0.0.1,和端口8888.
3.将配置文件添加到资源文件夹中
4.读取配置文件中的数据,用文件进行操作,使用Qt中的QFile类进行操作
5.将读取到的数据打印出来
6.解析接收到的数据
二、TCP客户端连接服务器
1.添加Qt中的网络变成模块 network
加载QTcpSocket类用来连接服务器,收发服务器数据
#include<QTcpSocket>
private:
QTcpSocket m_tcpSocket; // 用来连接服务器,收发服务器数据
在构造函数中连接服务器,连接成功会弹出提示框
TcpClient::TcpClient(QWidget *parent)
: QWidget(parent)
, ui(new Ui::TcpClient)
{
ui->setupUi(this);
loadConfig();
connect(&m_tcpSocket,&QTcpSocket::connected,this,&TcpClient::showConnect);
// 连接服务器
m_tcpSocket.connectToHost(QHostAddress(m_strIP),m_nPort); //默认为读取模式
}
三、服务器实现
1.建立服务器,类似客户端的创建,并导入配置文件
2.加载配置文件并进行监听
使用单例模式创造一个,MyTcpServer 对象,通过调用这个函数只会返回操作同一个对象。
//单例模式
static MyTcpServer &getInstance();
MyTcpServer &MyTcpServer::getInstance()
{
static MyTcpServer instance;
return instance;
}
在TcpServer中调用该函数并进行监听
TcpServer::TcpServer(QWidget *parent)
: QWidget(parent)
, ui(new Ui::TcpServer)
{
ui->setupUi(this);
loadConfig();
//进行监听
MyTcpServer::getInstance().listen(QHostAddress(m_strIP),m_nPort);
}
通过重写虚函数,来实现获取连接后的信息
protected:
void incomingConnection(qintptr handle);
void MyTcpServer::incomingConnection(qintptr handle)
{
qDebug()<<"new client connected!";
}
然后进行测试,先启动服务器,在启动客户端
客户端显示连接成功。