Клиент IPL QLocalServer работает, сервер не

хорошо, это кажется хитрым. Я реализовал QLocalServer для выполнения IPC. Но это не будет работать должным образом. Клиент подключается и говорит, что он подключен. сервер … ну … нет, что делает меня неспособным получать какие-либо сообщения.

реализация сервера выглядит так:

PipeServer::PipeServer(QString servername, QObject *parent) : QObject(parent) {
m_server = new QLocalServer(this);
m_server->setSocketOptions(QLocalServer::WorldAccessOption);

if (!m_server->listen(servername)) {
logToFile("Unable to start the Server");
} else {
logToFile("Server up and running");
}

connect(m_server, SIGNAL(newConnection()), this, SLOT(socket_new_connection()));
}

void PipeServer::socket_new_connection() {

logToFile("incoming connection");

/* handling of connection ... */

}

сервер вывода:

[Debug]: Server up and running

выходной клиент:

[Debug]: ConnectingState
[Debug]: ConnectedState
[Debug]: socket_connected

Выходной клиент без запущенного сервера:

[Debug]: ConnectingState
[Debug]: UnconnectedState
[Debug]: socket_error
[Debug]: ServerNotFoundError

вывод клиента, если я закрываю сервер, пока клиент подключен:

[Debug]: ClosingState
[Debug]: UnconnectedState
[Debug]: socket_disconnected

поэтому клиент определенно подключается к серверу, но сервер newConnection() сигнал никогда не вызывается. я даже пытался сам проверить связь с m_server->hasPendingConnections() … но это также возвращает ложь …

[редактировать]

я проверяю состояние сервера каждые 30 секунд:

void PipeServer::checkListening(){

if(m_server->isListening()){
logToFile("server is listening");
} else {
logToFile("server is NOT listening");
}

if(m_server->hasPendingConnections()){
logToFile("server has pending connections");
} else {
logToFile("server has no pending connections");
}

}

какие выводы:

[Debug]: server is listening
[Debug]: server has no pending connections

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]