IpcClient 类
用于向 IpcServer 发送远程调用的客户端。 更多...
头文件 | #include <IpcClient> |
继承 | QObject |
公开函数
IpcClient(QObject *parent = 0) | |
void | connectToServer(const QString &hostName, int port) |
void | connectToServer(const QString &hostName, int port, int msecs) |
QString | errorToString(QAbstractSocket::SocketError error) |
QUuid | send(const QString &method, const QByteArray &data) |
QAbstractSocket::SocketState | state() const |
bool | waitForConnected(int msecs = 30000) |
bool | waitForDisconnected(int msecs = 30000) |
bool | waitForSent(const QUuid uuid, int msecs = 30000) |
公开槽
void | disconnectFromServer() |
信号
void | connected() |
void | connectionError(QAbstractSocket::SocketError socketError) |
void | disconnected() |
void | received(const QString &method, const QByteArray &content) |
void | sendingError(const QUuid &uuid, QAbstractSocket::SocketError socketError) |
void | sentSuccessfully(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 调用时调用。提供 method 和 content。
[信号]
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公司以及世界其他国家的商标。所有其他商标均为其各自所有者所有。