QT TCP协议工作原理及实战

一、TCP协议基础知识
        1、传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

        2、TCP拥塞控制字算法(也称AIMD算法)。该算法主要包括四个主要部分:慢启动、阻塞避免、快速重传和快速恢复

        3、TCP通信必须建立TCP连接(客户端和服务端),Qt提供QTcpSocket类和QTcpServer类专门用于建立TCP通信程序,服务器用QTcpServer监听端口及建立服务器;QTcpSocket用于建立连接后使用套接字(socket)进行通信。

        4、QtcpServer是从QOjbect继承的类用于服务器连接网络监听,创建网络socket连接。QTcpServer主要接口如下:

QAbstractSocket 是Qt库中的一个类,它提供了网络套接字的基本功能。QAbstractSocket是所有特定类型套接字如(QTcpSocket或QUdoSocket)类
QAbstractSocket 类提供了如一些功能:
1、连接与断开连接:可以连接到远程主机,也可以断开连接
2、等待套接字就绪:可以等待套接字准备好进行读写操作,或者在套接字准备好时接受通知
3、读取和写入数据:可以从套接字读取数据,也可以向套接字写入数据
4、设置套接字选项:可以涉资套接字选项,如TCP连接超时
5、获取套接字信息:可以获取套接字的信息,如主机名、端口号、套接字类型等、

       服务端代码:
        下方红色方框需要添加,不然添加头文件的时候会出现错误,无法找到。

 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTcpServer> // 专门用于建立TCP连接并传输数据信息
#include <QtNetwork> //此模块提供开发TCP/IP客户端和服务器的类
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();


private slots:
    void on_pushButton_startServer_clicked();

    void on_pushButton_stopServer_clicked();

    void on_pushButton_sendinfo_clicked();
    void clientconnect();
    void clientdisconnect();
    void socketreaddata();
    void newconnection();

private:
    Ui::MainWindow *ui;
private:
    QString Get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值