天天看點

Qt掃盲- QLocalSocket類一、概述二、使用

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() 系列的函數。

Qt掃盲- QLocalSocket類一、概述二、使用

繼續閱讀