Использование QLocalServer
и QLocalSocket
для создания соответственно классов сервера и клиента.
server:
SocketServer(const QString& name, QObject* prnt=nullptr)
: QObject(prnt),
m_server(new QLocalServer(this)),
m_name(name)
{
connect(m_server, &QLocalServer::newConnection, this, &SocketServer::handleNewConnection);
}
bool SocketServer::start()
{
if (!m_server->isListening()) {
m_server->listen(m_name);
}
return m_server->isListening();
}
void SocketServer::handleNewConnection()
{
QLocalSocket* socket = m_server->nextPendingConnection();
connect(socket, &QLocalSocket::disconnected, socket, &QLocalSocket::deleteLater);
connect(socket, &QLocalSocket::readyRead, [&, socket]() {
QByteArray data(socket->readAll());
qDebug() << data;
});
}
client:
QLocalSocket* client = new QLocalSocket(this);
client->setServerName("myServer");
connect(client, &QLocalSocket::connected, this, [client]() {
for (int i = 1; i <= 100; ++i) {
client->write(QStringLiteral("Update status: ") + QString::number(i));
}
});
client->connectToServer();
Из них100 сообщений от клиента, только 5 или 6 появляются на стороне сервера.Пробовал звонить flush()
и после отправки сообщения на стороне клиента.Я что-то упустил?