Доброго времени суток. Пишу службу под windows, которая должна, помимо других действий, создавать серверный сокет и слушать его на предмет соединений. С этим казалось бы проблем быть не должно. Однако, несмотря на то, что объект класса QTcpServer говорит мне, что он слушает порт, этого не происходит. Т.е. меня обманывают=)
Вот кусок кода:
tcpServer = new QTcpServer(this);
if (!tcpServer->listen(QHostAddress::LocalHost, nPort))
{
qDebug() << "Unable to start Server: " << tcpServer->errorString();
tcpServer->close();
return;
}
connect(tcpServer, SIGNAL(newConnection()),
this, SLOT(slotNewConnection()));
qDebug() << tcpServer->isListening() << "TCPSocket listen on port" << nPort;
Так вот. Ошибки не происходит, сокет создается. Последняя строка с qDebug() говорит следующее:
true TCPSocket listen on port 6667
Тем временем netstat не видит открытого порта, nmap также, telnet также о_0
Что не так? Службе нужны какие-то привилегии для открытия порта? Так я ей уже указал под админом запускаться, без толку.
P.S. Данный код для создания сокета прекрасно работает в моем маленьком тестовом проекте, здесь не хочет.