QTcpSocket::peerPort()
Здравствуйте! Помогите мне, пожалуйста, разобраться с сокетами: QTcpSocket::peerPort().
Имею 2 программы, которые связываются с помощью сокетов.
Первая сторона - сервер, вторая - клиент.
На стороне клиента делаю запрос на соединение с серером:
QTcpSocket *MySocket = new QTcpSocket(this);
QString ip = "127.0.0.1";
quint16 port = 8001;
MySocket->connectToHost(ip,port);
На стороне сервера принимаю входящее соединение:
//virtual
MyTcpServer::incomingConnection ( int socketDescriptor )
{
QTcpSocket *access_socket = new QTcpSocket(this);
access_socket->setSocketDescriptor(socketDescriptor);
//Входящий ip принимается нормально.
QString ip = accessSocket->peerAddress(); //Возвращает '127.0.0.1'.
//А входящий порт - неправильно!
quint16 port = access_socket->peerPort(); //Возвращает 62806. Не равно ожидаемому (должно быть 8001).
}
Метод 'incomingConnection' срабатывае, когда приходит входящее соединение, но внутри метода не возвращается из сокета нормальный номер порта.
Входящий ip, port я контролирую, чтобы ограничить доступ - только для сторон с разрешенными ip, port давать соединяться.
Как сделать, чтобы 'peerPort' возвращало правильное значение?
Правильно ли я понял про применение и назначние 'peerPort' ?
Помню, еще в Qt3 был аналог этого метода: 'pendingPort'.