QTcpServer类

提供一个TCP基础服务类 继承自QObject
这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。
 调用listen()来监听所有的连接,每当一个新的客户端连接到服务端就会发射信号newConnection()
调用nextPendingConnection()来接受待处理的连接。返回一个连接的QTcpSocket(),我们可以用这个返回的套接字和客户端进行连接

如果有错误,serverError()返回错误的类型。调用errorString()来把错误打印出来。
当监听连接时候,可以调用serverAddress()和serverPort()来返回服务端的地址和端口。
调用close()来关闭套接字,停止对连接的监听。‘
尽管QTcpServer大多时候设计使用事件循环,也可以不适用事件循环,可以使用waitForNewConnection(),会一直阻塞,知道一个连接可以用或者超时。
在Symbian平台上,同样的需要NetworkServices平台支持。

QTcpSocket 详细描述:
QTcpSocket 类提供一个TCP套接字
TCP是一个面向连接,可靠的的通信协议,非常适合于连续不断的数据传递
QTcpSocket 是QAbstractSocket类非常方便的一个子类,让你创建一个TCP连接和数据流交流。
注意:TCP套接字不能以QIODevice::Unbuffered模式来打开

在Symbian系统上,程序想用这个类的话必须拥有NetworkServices平台支持,如果客户机缺少这个能力,将会导致"恐惧"(不明白为什么这么翻译)

成员函数:
QTcpSocket::QTcpSocket ( QObject * parent = 0 )
以UnconnectedState态创建一个QTcpSocket对象
QTcpSocket::~QTcpSocket ()   [virtual]‘
析构函数,销毁对象

1、mysocket.h

#ifndef MYSOCKET_H
#define MYSOCKET_H#include <QObject>class QTcpSocket;
class QTcpServer;class MySocket : public QObject
{Q_OBJECT
public:explicit MySocket(QObject *parent = nullptr);~MySocket();bool writeData(const QString& data);signals:void reciveData(const QString& data);
public slots:private:QTcpServer* m_tcp_server;QTcpSocket* m_tcp_socket;
};#endif // MYSOCKET_H

2、mysocket.cpp

#include "mysocket.h"#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>MySocket::MySocket(QObject *parent) : QObject(parent),m_tcp_server(new QTcpServer),m_tcp_socket(nullptr)
{m_tcp_server->listen(QHostAddress::Any, 4020);connect(m_tcp_server, &QTcpServer::newConnection, this, [this]{m_tcp_socket = m_tcp_server->nextPendingConnection();qDebug() << "Peer address: " << m_tcp_socket->peerAddress() << "peer port: " << m_tcp_socket->peerPort();connect(m_tcp_socket, &QTcpSocket::readyRead, this, [this]{QString r_data = QString(m_tcp_socket->readAll());qDebug() << r_data;emit this->reciveData(r_data);});});
}MySocket::~MySocket()
{m_tcp_server->close();if(m_tcp_socket) delete m_tcp_socket;if(m_tcp_server) delete m_tcp_server;
}bool MySocket::writeData(const QString &data)
{if(!m_tcp_socket) return false;m_tcp_socket->write(data.toUtf8());return true;
}

QTcpSocket简单使用相关推荐

  1. Qt之QTcpServer/QTcpSocket简单收发信息(1)

    用QT包装好的东西做socket类东西,我只能说啥这么简单呢. waitForConnected() 等待链接的建立 waitForReadyRead() 等待新数据的到来 waitForBytesW ...

  2. QTcpServer / QTcpSocket 简单示例

    先看服务端 #include <QObject> #include <QTcpServer> #include <QTcpSocket>class CTcpServ ...

  3. Qt之QTcpServer/QTcpSocket简单收发信息(2)

    (1)篇里面代码没完全贴出,有些同学说没看明白.今天又闲的蛋疼,无聊弄个服务端跟客户端整在一个程序上的例子. 代码跟一篇有点相同,但是又有点不同.先贴出效果图... 为了效果明显,我一个在linux ...

  4. qt中socket通信流程图_使用QT实现简单的tcp/ip通信

    使用QT实现tcp/ip的通信非常的简单,下面我将直接贴出代码: 一.服务器端 1.头文件#ifndef SERVERWIDGET_H #define SERVERWIDGET_H #include ...

  5. QT5实现简单的TCP通信

    使用QT的网络套接字需要.pro文件中加入一句: [cpp] view plaincopy QT       += network 一.客户端 1.客户端的代码比服务器稍简单,总的来说,使用QT中的Q ...

  6. Qt TCP 通讯简单案例

    TCP 简介: TCP 是一个面向数据流和连接的可靠传输协议. QTcpSocket类为TCP提供了一个接口,继承自QAbstractSocket. 可以使用QTcpSocket来实现POP3\SMT ...

  7. QT学习:网络应用开发练习(简单网页浏览器)

    前两篇文章编程所使用的QUdpSocket.QTcpSocket和QTcpServer类都是网络传输层上的类,它们封装实现的是底层的网络进程通信(Socket通信)的功能.而Qt网络应用开发则是要在此 ...

  8. Qt下Tcp通信的简单使用三

    和之前两个例子一样,程序比较简单,刚入门的可以看看,先上效果图. 下面是客户端: myClient.h #ifndef CLIENT_H #define CLIENT_H#include <QD ...

  9. Qt中Tcp通信的简单使用二

    tcp编程中写的一个简单的单项传输数据的小例子,和上一节一样,分为客户端和服务端程序,下面看一下界面的效果. 创建的方法和之前一样,上面上代码: 客户端 Client.h #ifndef CLIENT ...

  10. tcp的简单使用实例一

    话不多说,直接上自己写的一个tcp小程序,分为客户端和服务端两个程序,实现了单一方向的数据传输.下面来看具体的代码: 先看客户端的程序.创建基于Qt Widgets Application 的应用程序 ...

最新文章

  1. eclipseweb开发遇到的bug
  2. 解决kubectl get pods时 No resources found.问题
  3. SIG Cloud Provider Alibaba 网研会第 2 期顺利召开 | 云原生生态周报 Vol. 46
  4. Python-Opencv学习-实验-1:工具安装
  5. java程序员高薪持续的原因有哪些
  6. 透明轮播原生JavaScript实现
  7. gradle wrapper 版本与 android build tool 版本匹配要求
  8. ubuntu下django的项目相关软件安装测试
  9. 排序周赛(no stl)
  10. [C/C++][经典探讨]类继承中,通过基类指针delete释放,是否会造成内存泄漏
  11. RK3288 查看时钟树
  12. Linux下修改MAC值
  13. 谷歌账户跑着跑着没点击了,跑不出去什么原因。
  14. 统计基础:3.3_假设检验之t检验(Student‘s t test)
  15. 计算机显卡更新,电脑显卡怎么升级,电脑显卡升级方法图解
  16. File Based Optimizations(FBO,FBO焕新存储技术)介绍
  17. 计算机学生会大型户外活动,学生会大型户外素质拓展活动
  18. 隐私保护的数据挖掘综述
  19. .NET CORE认证1.认识登陆和授权
  20. Perl-高级perl技巧2

热门文章

  1. API网关的几点思考
  2. Rust : AES算法加密、解密
  3. Julia :PyPlot库安装中需注意的问题
  4. 万字干货:阿里巴巴是怎么做大数据算法应用测试的? | 凌云时刻
  5. Cephalocon 2020首尔峰会取消
  6. 【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】
  7. 【优化求解】基于matlab GUI模拟退火算法求解全局最大值最小值问题【含Matlab源码 1242期】
  8. 【优化算法】符号LMS算法【含Matlab源码 697期】
  9. 【脑电信号】基于matlab小波变换睡眠脑电信号监测【含Matlab源码 595期】
  10. 【车道线检测】基于matlab Hough变换视频车道线检测 【含Matlab源码 274期】