Josan学QT网络编程02-QTcpSocket
导读
PS: 如果你在之前的文章,看过导读,那么你可以跳过这段的阅读。如果没有看过导读,我建议你耐心的看完。这样有助于你更快的获取新知识。
- 文章编写的整体思路
先简单描述一下某个类,一般以QT官网的”Detalied Description”为主;
然后是自己测试这个类的接口所用到的测试函数。测试函数的有测试结果说明以及对某个函数的解释说明。强烈建议你,自己跑一下测试函数,光看的话,印象是不深刻的。
最后,送上一些参考链接,代码下载地址,以及自己的学习群:676908519。欢迎爱分享的小伙伴入群交流讨论。
翻译说明:
- 对于一些常用的专业词汇,尽量不翻译,使用英文说明。
- 对于自己把握不是很准备的语句,会选择性跳过。
- 本翻译不是默守陈规式的翻译,对于一些语句翻译,会追加一些个人心得的补充。
QTcpSocket
QTcpSocket提供了一个TCP套接字。
TCP提供一个可靠的,面向字节的,面向连接的传输协议。它尤其适用于连续性传输数据。
QTcpSocket是QAstractSocket的子类。在建立TCP连接,传输数据流的时候,QTcpSocket显得十分方便。更多信息,可以参考QAbstractSocket文档说明
注意:TCP套接字不能以QIODevice::Unbuffered的模式打开,TCP套接字必须使用缓存
- // 服务端主体代码
/**
* Josan学QT网络编程02-QTcpSocket
*/
connect(tcpServer, &QTcpServer::newConnection,
[=]()
{
qcout << "---------------------before connected -------------------";
// 由于在connect之前,tcpSocket是nullptr。因此,不能调用这些内容QTcpSocket提供的接口
tcpSocket = tcpServer->nextPendingConnection();
qcout << "-------------------- after connected -------------------";
// test tcpSocket相关属性值
// error信号,还有信号信息
qcout << "tcpSocket error : " << tcpSocket->error(); // QAbstractSocket::UnknownSocketError
// 本地的地址和端口
qcout << "tcpSocket local address: " << tcpSocket->localAddress().toString(); // 127