《Qt————Tcp连接》

Qt——tcp连接

本项目将实现基于tcp协议的服务端与客户端的连接


客户端编写

1. 设计ui

在这里插入图片描述

2. 工程文件下,加一个network
在这里插入图片描述

3. 导入必要头文件

#include <QTcpSocket>
#include <QHostAddress>
#include <QMessageBox>

4. 定义并 初始化一个Qtcpsocket对象
在这里插入图片描述


5. 编写cancel_button 代码

void Widget::on_cancel_button_clicked()
{
    this->close();
}

6. 编写connect_button 代码

void Widget::on_connect_button_clicked()
{
    QString ip=ui->ip_line->text();
    QString port=ui->port_line->text();
    qDebug()<<ip;
    qDebug()<<port;
    //连接服务器
    socket->connectToHost(QHostAddress(ip),port.toUShort());
    //连接反馈
    //成功
    connect(socket,&QTcpSocket::connected,[this](){
    QMessageBox::information(this,"连接提示","服务器连接成功");
    });
    //失败
    connect(socket,&QTcpSocket::disconnected,[this](){
        QMessageBox::information(this,"连接提示","服务器连接失败");
    });

}

7. 测试

我们在这一篇文章有介绍到,tcp的服务端代码,我们用这里的代码进行测试

在这里插入图片描述

链接成功


服务端编写

前面的步骤和客户端基本一致

1. 导入模块,并宏定义端口号

#include <QTcpSocket>
#include <QTcpServer>
#include <QMessageBox>
#include <QHostAddress>
#define port 6666

2. 创建一个server对象,并初始化,注意这里是QTcpServer

QTcpServer * server;

3. 链接代码编写
服务端的步骤为:

  1. 创建
  2. 绑定
  3. 监听
  4. 等待连接
  5. 接收/发送
  6. 关闭连接

构造函数初始化

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //初始化
    server=new QTcpServer;
    //监听
    server->listen(QHostAddress::AnyIPv4,port);

    //客户端发起连接,server发出信号
    connect(server,&QTcpServer::newConnection,this,&Widget::newclientHandler);
}

槽函数

void Widget::newclientHandler()
{
    //建立tcp连接
    QTcpSocket *socket=server->nextPendingConnection();
    //显示
    ui->ip_line->setText(socket->peerAddress().toString());//获取客户端的ip地址,并显示在ip_line上
    ui->port_line->setText(QString::number(socket->peerPort()));//获取客户端端口号,并显示在port_line上

}

测试一下,成功!
在这里插入图片描述

这里先介绍到这里,有了这个基本的了解,后续还可以拓展做一个基于tcp的聊天系统

qt——服务器客户端进行tcp通信代码.rar是一个使用Qt框架编写的用于实现服务器和客户端之间进行TCP通信的程序。TCP是一种高可靠性的传输层协议,通过它可以实现数据的可靠传输,具有较高的传输速度和较低的错误率。在程序中,服务器端和客户端都可以进行TCP通信,它们之间通过网络连接进行数据的传输和接收。 在程序中,使用了Qt提供的QTcpSocket和QTcpServer两个类来实现TCP通信。QTcpServer类用于实现服务器端,它可以监听指定的端口,等待客户端的连接请求,并实现TCP通信。QTcpSocket类用于实现客户端,它可以主动发起连接请求,并与服务器进行TCP通信。 在程序中,服务器端和客户端都实现了数据的发送和接收,通过使用Qt提供的信号和槽机制来实现。信号表示某个事件的发生,槽表示某个事件的响应。当服务器端或客户端有数据发送或接收时,发出相应的信号,程序响应相应的槽来实现数据的发送和接收。 此外,在程序中还使用了一些其他的Qt类和模块,如QDataStream、QByteArray和QHostAddress等,来实现数据的封装和解析,IP地址和端口号的管理等功能。 总之,这个qt——服务器客户端进行tcp通信代码.rar是一个优秀的实现TCP通信的程序,通过它可以学习到Qt框架的使用,以及实现TCP通信的方法和技巧,对于想要开发网络应用的开发者来说是一个非常有用的代码库。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值