超级精简版!QT网络通讯TCP客户端代码,linux和win兼容,亲测可用

超级精简版!QT5网络通讯TCP客户端代码,linux和win兼容,亲测可用

1. 简介

网络通讯最好是选用TCP协议,没有为什么,用就对了。
关于QT的TCP程序不算难,网上有好多大佬都写过,我也参考了大佬的程序。
这次公司的项目是一个不需要界面的TCP通讯程序,借此机会我就想搞一个最最基本的模板出来。
整个工程没有一行多余的代码,新手福利(我自己就是新手)。

2. 准备工作

首先准备两台电脑,Linux或者Win都可以。两台都可以联网,两台电脑的IP设置成同一号段。
例如:服务器端IP:192.168.1.10;客户端IP192.168.1.7;
在这里插入图片描述
一条网线直接连接两台电脑的网口。或者用服务器也可以。

3. QT代码

注意:如果是Linux系统运行,需要把所有的qDebug改成qWarning。

  • 先看界面
    点击连接,可以连接到主机。
    连接成功,打印“连接成功”,红灯变绿(这个就是多余代码)。
    点击发送,会发送一句“SB”。
    在这里插入图片描述

  • .pro文件
    在.pro文件中添加一行。

QT       += network
  • 初始化
    tcpSocket = new QTcpSocket(this);//定义一个套接字
    connect(tcpSocket,&QTcpSocket::readyRead,this,&MainWindow::readMessage);//连接接收中断函数
    connect(tcpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(displayError(QAbstractSocket::SocketError)));//连接错误提示函数
    ui->IP_lineEdit->setText("192.168.1.10");//设置默认IP
    ui->Port_lineEdit->setText("6666");//设置默认端口号
  • 连接服务器端,就三行
void MainWindow::on_Connect_pushButton_clicked()//连接服务器的槽函数 按键触发
{
    tcpSocket->abort();//取消已有连接
    tcpSocket->connectToHost(ui->IP_lineEdit->text(),ui->Port_lineEdit->text().toInt());//连接到主机,按输入的IP和端口号
    connect( tcpSocket,&QTcpSocket::connected,this,&MainWindow::connectToServer );//连接信号槽,当连接成功时候触发
}
  • 发送数据,就一行
void MainWindow::on_Send_pushButton_clicked()//发送数据的槽函数 按键触发
{
    tcpSocket->write("SB\r\n");//发送数据
}
  • 接收数据并打印,就两行
void MainWindow::readMessage()//接收数据的槽函数
{
    QByteArray temp = tcpSocket->readAll();//接收数据
    qDebug()<<temp;//打印数据
}

4. 总结

非常简单易懂,工程下载链接在下面。
工程下载链接

后续会写一个服务器端的代码。
服务器端代码

猜你喜欢

转载自blog.csdn.net/qq_36353009/article/details/107641652