1、QT提供了QTcpSocket类,可以直接实例化一个客户端。需要在pro文件中添加   QT += network

2、连接服务端

connect(connectbutton,SIGNAL(clicked()),this,SLOT(on_connect_cliked()));
void MyDialog::on_connect_cliked(){
    if(connectbutton->text()=="连接")
    {
        m_socket->connectToHost("192.168.0.103",8899,QTcpSocket::ReadWrite);
        if(!m_socket->waitForConnected())
        {
            qDebug()<<"client connect error";
        }
        else{
            qDebug()<<"已连接上";
            connectbutton->setText("断开");
        }
    }
    else
    {
        m_socket->disconnectFromHost();
        if(m_socket->state()==QAbstractSocket::UnconnectedState
                || m_socket->waitForDisconnected(1000))
        {
            qDebug()<<"已断开";
            connectbutton->setText("连接");
        }
    }
}
3、接受服务端发来的数据
    QTimer *timer = new QTimer;
    connect(timer,SIGNAL(timeout()),this,SLOT(receive_repeat()));
    timer->start(1);

void MyDialog::readData(){
    QByteArray buffer = m_socket->readAll();
    if(!buffer.isEmpty())
    {
       receivee.append(buffer);
       qDebug()<<"添加了数据";
    }
}
4、给服务端发送数据
connect(sendbutton,SIGNAL(clicked()),this,SLOT(send_msg()));
void MyDialog::send_msg(){
    QString data = sendtext->toPlainText();

    if(data != "")
    {
//        qDebug()<<"mydialog sendtext2"<<data;
        m_socket->write(data.toLatin1());
    }
}




Qt实现简单的TCP协议(客户端的实现)的更多相关文章

  1. 网络编程----------SOCKET编程实现简单的TCP协议

    首先我们须要大致了解TCP的几点知识: 1.TCP的特点:面向连接的可靠性传输 2.TCP的三次握手建立连接和四次挥手释放连接.但为什么TCP要三次握手建立连接呢? 答:由于两次握手无法保证可靠性.若 ...

  2. windows网络编程-C语言实现简单的TCP协议聊天

    TCP/IP协议(面向连接协议)类似于打电话时,对方一定在手机附近并且此刻都在和对方进行通话.一定保证双方都在线,才能进行数据传输.UDP/IP协议(无连接协议)就像邮箱,不保证对方一定在等你邮件且对 ...

  3. 二、网络编程-socket之TCP协议开发客户端和服务端通信

    知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人, ...

  4. python中基于tcp协议的通信(数据传输)

    tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...

  5. CS144学习(2)TCP协议实现

    Lab1-4 分别是完成一个流重组器,TCP接收端,TCP发送端,TCP连接四个部分,将四个部分组合在一起就是一个完整的TCP端了.之后经过包装就可以进行TCP的接收和发送了. 代码全部在github ...

  6. 一个简单的工具开发:从学生端更新程序部署工具说起,浅谈qt中自定义控件制作和调用、TCP协议下文件的收发 、以及可执行文件的打包

    一个简单的工具开发:从学生端更新程序部署工具说起,浅谈qt中ui的使用和TCP协议下文件的收发.以及可执行文件的打包 写在前面,Qt Designer是一个非常操蛋的页面编辑器,它非常的...怎么说呢 ...

  7. python3实现TCP协议的简单服务器和客户端

    利用python3来实现TCP协议,和UDP类似.UDP应用于及时通信,而TCP协议用来传送文件.命令等操作,因为这些数据不允许丢失,否则会造成文件错误或命令混乱.下面代码就是模拟客户端通过命令行操作 ...

  8. Http协议与TCP协议简单理解(转)

    在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解.TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上 ...

  9. Http协议与TCP协议简单理解

    TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通 ...

  10. TCP协议三次握手过程分析【图解,简单清晰】

    转自:http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TCP是 ...

随机推荐

  1. 静态文件配置 django连接MySQL django模型层初识 ORM基本语句

    目录 静态文件配置 1. 问题描述 2. 静态文件 3. 资源访问 form表单属性补充 action method 请求方法 get请求 post请求 views层 request对象 reques ...

  2. 用Python来写个小型购物车程序

    0x1 前言 Python语言能做很多东西的,像数据分析啊.自动化.开发. 爬虫(真的很棒哟,初学者玩很有成就感的啊哈哈)等等还有挺多. 0x2 用Python编写的一个小型购物车程序 import ...

  3. Windows缓冲区溢出实验

    Windows缓冲区溢出 前言 windows缓冲区溢出学习笔记,大佬勿喷 缓冲区溢出 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被"撑暴",从而覆盖 ...

  4. Redis数据结构与对象

    参考<Redis设计与实现> 系列文章目录和关于我 一丶简单动态字符串 当redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,就会使用SDS(simple dynam ...

  5. 如何配置 SLO

    前言 无论是对外提供 IaaS PaaS SaaS 的云公司,还是提供信息技术服务的乙方公司,亦或是金融 制造等各行各业的数据中心.运维部门,我们的一个非常重要的合同承诺或考核评估指标就是:SLA(即 ...

  6. 【公式详解】【优秀论文解读】EDPLVO: Efficient Direct Point-Line Visual Odometry

    前言 多的不说哈 2022最佳优秀论文 来自美团无人机团队 作者提出了一种使用点和线的高效的直接视觉里程计(visual odometry,VO)算法-- EDPLVO .他们证明了,2D 线上的 3 ...

  7. 打包iOS App并上架到TestFlight测试

    开发者账号 首先需要注册一个开发者账号,不然什么都免谈.在手机Apple Developer上注册给钱就行了,个人开发者一年688元. 打包App App开发好后,就可以通过XCode打包.打包前选好 ...

  8. 使用vue创建一个吸顶的菜单项--简单版

    1.hover时候出现,总体来说只改了一下两个index.vue,还有route文件 src\layoutTwo\index.vue <template> <div class=&q ...

  9. npm 中设置环境NODE_ENV变量,判断失败打印process.env.NODE_ENV确实是"development",但是判断process.env.NODE_ENV === "development" 是false

    通过package.json 的scripts脚本 修改NODE_ENV的值来区分开发环境和生产环境. "scripts": { "build": " ...

  10. Python3+Selenium3自动化测试-(六)

    这里来说一说selenium中的等待方式,其实在webdriver只有两种类型等待方式,显式等待和隐式等待,之前是在程序运行过程中使用time模块中的sleep进行代码的休眠进行强制等待,是显式等待中 ...