1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| // 1. 服务端 m_server = new QLocalServer(this); connect(m_server, SIGNAL(newConnection()), this, SLOT(newConnection())); m_server->listen("a specified key");
void Server::newConnection() { QLocalSocket *socket = m_server->nextPendingConnection(); if ((nullptr != socket) && (QAbstractSocket::ConnectedState == socket->state())) { connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected())); connect(socket, SIGNAL(error(QLocalSocket::LocalSocketError)), this, SLOT(socketError(QLocalSocket::LocalSocketError))); connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead())); } }
void Server::disconnected() { // 连接中断的业务处理 }
void Server::socketError(QLocalSocket::LocalSocketError error) { // 通信出错的业务处理 }
void Server::readyRead() { // 处理来自客户端的数据 }
// 2. 客户端 m_socket = new QLocalSocket(this); connect(m_socket, SIGNAL(disconnected()), this, SIGNAL(disconnected())); connect(m_socket, SIGNAL(readyRead()), this, SLOT(readyRead())); m_socket->connectToServer("WisdomClassIPC");
void IPCClient::readyRead() { // 处理来自服务端的数据 }
|