IpcClient 类

用于向 IpcServer 发送远程调用的客户端。 更多...

头文件 #include <IpcClient>
继承 QObject

公开函数

IpcClient(QObject *parent = 0)
voidconnectToServer(const QString &hostName, int port)
voidconnectToServer(const QString &hostName, int port, int msecs)
QStringerrorToString(QAbstractSocket::SocketError error)
QUuidsend(const QString &method, const QByteArray &data)
QAbstractSocket::SocketStatestate() const
boolwaitForConnected(int msecs = 30000)
boolwaitForDisconnected(int msecs = 30000)
boolwaitForSent(const QUuid uuid, int msecs = 30000)

公开槽

信号

voidconnected()
voidconnectionError(QAbstractSocket::SocketError socketError)
voiddisconnected()
voidreceived(const QString &method, const QByteArray &content)
voidsendingError(const QUuid &uuid, QAbstractSocket::SocketError socketError)
voidsentSuccessfully(const QUuid &uuid)

详细描述

IPC 系统使用规范化的信号/槽签名来识别消息调用。将参数作为 QByteArray 传递给发送函数。

以下是一个简单的示例

IpcClient *client = new IpcClient(this);
client->connectToServer("127.0.0.1", Constants.DEFAULT_PORT());
QString text = "Hello";
QByteArray content;
QDataStream out(&bytes, QIODevice::WriteOnly);
out << text;
QUuid uuid = client->send("echo(QString)", content);
client->waitForSent(uuid);

不要在您的 GUI 应用程序中使用 waitFor*-Methods。这些方法将阻塞事件循环。相反,当一个包发送或发生错误时,请对这些信号做出反应。

成员函数文档

IpcClient::IpcClient(QObject *parent = 0)

使用父对象 parent 构造一个 IpcClient 以向一个 IpcServer 发送命令。

[signal] void IpcClient::connected()

在建立与服务器连接后一次发出。

[signal] void IpcClient::connectionError(QAbstractSocket::SocketError socketError)

在连接到服务器或从服务器断开连接时发生错误时发出。 socketError 描述了发生了什么错误。

[槽]void IpcClient::disconnectFromServer()

断开与服务器的连接

[信号]void IpcClient::disconnected()

服务器连接终止时发出。

[信号]void IpcClient::received(const QString &method, const QByteArray &content)

接收 RPC 调用时调用。提供 methodcontent

[信号]void IpcClient::sendingError(const QUuid &uuid, QAbstractSocket::SocketError socketError)

在通过 uuid 识别的包发送时发生 socketError 错误时发出。

[信号]void IpcClient::sentSuccessfully(const QUuid &uuid)

当通过 uuid 识别的包成功发送时发出。

void IpcClient::connectToServer(const QString &hostName, int port)

设置用于 IPC 调用的 IP 地址为 hostName,端口为 port

void IpcClient::connectToServer(const QString &hostName, int port, int msecs)

设置用于 IPC 调用的 IP 地址为 hostName 和端口为 port,并等待套接字连接,最长 msecs 毫秒。

QString IpcClient::errorToString(QAbstractSocket::SocketError error)

将套接字错误 error 转换为可打印的字符串。

QUuid IpcClient::send(const QString &method, const QByteArray &data)

发送到指定服务器的调用。

期望 method 的形式为 "echo(QString)",并使用 data 作为参数的内容。返回一个 QUuid,该 UUID 识别此包。

另请参阅sentSuccessfully() 和 sendingError()。

QAbstractSocket::SocketState IpcClient::state() const

返回套接字状态。

bool IpcClient::waitForConnected(int msecs = 30000)

等待客户端连接到服务器 msecs 指定等待时间,返回 true 当客户端连接时。

此调用会阻塞你的 eventloop()

另请参阅waitForDisconnected() 和 waitForSent

bool IpcClient::waitForDisconnected(int msecs = 30000)

等待客户端与服务器断开连接,msecs指定等待时间。当客户端断开连接时返回true。

此调用会阻塞你的 eventloop()

另请参阅waitForConnected() 和 waitForSent

bool IpcClient::waitForSent(const QUuid uuid, int msecs = 30000)

等待通过uuid标识的包发送,msecs指定等待时间。发送成功时返回true。

此调用会阻塞你的 eventloop()

另请参阅waitForConnected() 和 waitForDisconnected

©2019 Luxoft Sweden AB。在此包含的文档贡献是各自所有者的版权。所提供的文档在GNU自由文档许可第1.3版的条款下提供,该许可由自由软件基金会发布。Qt和相应的徽标是芬兰的Qt公司以及世界其他国家的商标。所有其他商标均为其各自所有者所有。