QTcpSever和QTcpSocket实现多线程客户端和服务端;
QTcpServer提供了newConnection信号, 可以通过connect实现连接槽函数,利用nextPendingConnection
函数获取连接的QTcpSocket * ;也可以继承QTcpServer派生, 复写虚函数incomingConnection(在连接上时,
会自动触发该函数,传参handle);
virtual void incomingConnection(qintptr handle);
通过setSocketDescriptor 函数建立QTcpSocket;
virtual bool setSocketDescriptor(qintptr socketDescriptor, SocketState state = ConnectedState,OpenMode openMode = ReadWrite);
QTcpSocket *pSock = new QTcpSocket;
if( ! pSock->setSocketDescriptor(handle) )
{...
}
QTcpSocket有几个继承于 QAbstractSocket, 而QAbstractSocket又继承于QIODevice, 可以看出QtcpSocket可以类似
IO接口一样的进行操作;
virtual void connectToHost(const QString &hostName, quint16 port, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
virtual void connectToHost(const QHostAddress &address, quint16 port, OpenMode mode = ReadWrite);
通过connectToHost函数可以连接服务端, 在连接服务端时,将发送信号:
void connected();
void disconnected();
void stateChanged(QAbstractSocket::SocketState);
当socket缓冲区内有数据时,将触发readyRead信号, 利用 bytesAvailable函数可以获取缓冲区内的数据长度, read(length)读取指定长度的数据;
转载于:https://www.cnblogs.com/yinwei-space/p/10774328.html
QTcpSever和QTcpSocket实现多线程客户端和服务端;相关推荐
- 基于多线程的TCP局域网通信,客户端向服务端上传 文件简单实现源码
客户端 import java.io.*; import java.net.Socket;/*** ### 作业3:* 完成文件上传案例学习* - 案例需求* 客户端:数据来自于本地文件,接收服务器反 ...
- QTcpSocket客户端和服务端发送图片(或大文件)小Demo
先看一下效果: 思路: 发图片.大文件与发短字符不大一样. 1.文件和图片通过TCP可能一次发不过去,可能要发很多次.所以我们在发送文件.数据.以及文字最好带上文件的大小. 2.图片转换成文件流的形式 ...
- Java中Socket实现客户端和服务端通信(多线程实现全双工通信)
效果图 目录结构 服务端Server package server;import thread.SocketReader; import thread.SocketWrite;import java. ...
- php winform通信,C# Winform 通过Socket实现客户端和服务端TCP通信
操作界面如下: 1.声明Socket 第一个参数:寻址方式,第二个参数:传输数据的方式,第三个参数:通信协议 Socket socket = new Socket(AddressFamily.Inte ...
- 带线程池的socket客户端与服务端
前言 socket(套接字),Socket和ServerSocket位于java.net包中,之前虽然对socket有过一些了解,但一直都是云里雾里的,特意仔细的学习了一个socket,用socket ...
- QT -- TcpSocket实例,使用Qt中的tcp通信协议,构建客户端和服务端,实现局域网通信软件功能
Qt中使用Tcp构建通信客户端实现聊天信息发送连接等 1.简介 2.项目创建和界面构建 1)流程图 2)项目构建 3)界面构建 3.代码设计 1)项目pro添加 2)客户端设计 a. clientwi ...
- Part6:客户端和服务端信息交互模型
一.客户端和服务端信息交互模型 1.[问题]:什么是客户端和服务端? 客户端:可以向服务器发请求,并接收返回的内容进行处理 服务器端:能够接收客户端请求,并且把相关资源信息返回给客户端的 2.[面试题 ...
- C# TCP/IP客户端与服务端数据与文件的传输
用C#写的 一个简单的TCP通信,主要的功能有: (1) 多个客户端与服务器间的数据交流 (2)可以实现群发的功能 (3)客户端与服务端可以进行文件的传输 主要用到的知识: TCP里的 socket ...
- 客户端和服务端通信原理
客户端和服务端 客户端:可以向服务端发起请求的,并且接受返回的内容的进行处理 服务器端:能够接受客户端的请求,并且把相关资源信息返回给客户端的 web 服务站点 详细 url 地址解析 DNS 服务器 ...
最新文章
- mysql des_mysql中DES加密解密
- WinPcap笔记(8):分析数据包(2)
- 工作10年厌倦写代码_厌倦了数据质量讨论?
- 代码提交本地代码和远程代码不同步问题(笔记)
- Python实现立方体纹理映射
- 【DP】LeetCode 120. Triangle
- vue项目打包部署到Tomcat上,一刷新就报错404
- [Linux] ubuntu 安装 Wireshark
- wincc控件之FlexGrid系列(注册安装)
- ISO_7637-1/2/3/4/5标准各部分修订状态汇总(Road vehicles-Electrical disturbances from conduction and coupling)
- 使用c++filt命令还原C++编译后的函数名
- CnOpenData工商注册企业数量统计数据:省份-年度-企业数量信息表
- Ultrasound Open Platforms for Next-Generation Imaging Technique Development
- play框架使用起来(16)
- win7下32位eclipse启动错误
- 第十三周 任务三
- 阿里云视频点播微服务
- yolov5踩过的初坑(关于detect代码可以调用gpu而训练代码无法调用gpu的问题)
- Vue2 Vue UI组件库
- JAVA编程实战之编写小游戏-大球吃小球(eat ball game)
热门文章
- oppo手机计算机,OPPO手机助手
- 格式要求_课题论文的格式要求
- controller属于哪一层_五种皮肤类型,那你属于哪一种,你知道吗?
- weblogic 文件打开数_Weblogic任意文件读取和任意文件上传
- java文件下载代码_Java代码实现文件下载
- linux实现访问自动挂载
- 用 lastIndexOf()、substr()、split()方法截取一段字符串
- 9、MySQL逻辑架构介绍
- 【微信开发】-- 发送模板消息
- 算法笔记_072:N皇后问题(Java)