QLocalSocket类总结
- 一、概述
- 二、使用
一、概述
QLocalSocket类是一个比较特殊的传输数据的的一个工具类,它和 QTcpSocket 的区别就是,这个QLocalServer 只是在connectToServer 的时候连接主机是用的一个字符串或者标识符来表示主机,而QTcpSocket 用的是 IP 和端口来表示。
- connectToServer(const QString &name, QIODevice::OpenMode openMode = ReadWrite)
在功能上 QLocalSocket 是无法和其他局域网、互联网上的计算机通信的,只本机对本机的都使用QLocalServer 、和QLocalSeocket 的程序通信的。但是 QTcpSocket 可以与网络上的机器通过TCP/IP协议通信的。
QTcpSocket 功能范围其实就是覆盖了 QLocalSeocket 的功能,但QLocalSocket 一般就是用作本机的进程通信,这个通信肯定是都是Qt程序,都是使用的 QLocalServer 、和QLocalSeocket 进行通信的,如果是一方是Qt 程序,一方是其他程序,用的标准的Socket通信的话,这两方是无法通信的。必须Qt 使用用标准的TCP协议通信,只能用 QTcpSocket 或者其他基于TCP/IP的socket。
在Windows上,QLocalSocket 其实是一个命名管道,在Unix上,这是一个本地域套接字。
如果发生了错误,error()返回错误的类型,而errorString()可以被调用,来获取错误信息。
虽然QLocalSocket是为事件循环设计的,但没有事件循环也是可以使用的。在这种情况下,必须使用waitForConnected()、waitForReadyRead()、waitForBytesWritten()和waitForDisconnected(),它们会阻塞操作,直到操作完成或超时。
二、使用
使用来说,连接的步骤都是和 QTcpSocket 完全一样的。看看这个 Qt扫盲- QTcpSocket 理论总结 具体简单的使用就好啦。
这个也是继承至 QIODevice 类,就可以用 read() 、write() 系列的函数。