Russian Qt Forum
Мая 04, 2025, 00:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Узнать IP адрес в QTcpServer до создания своего сокета  (Прочитано 3459 раз)
RedDog
Гость
« : Февраля 07, 2013, 12:58 »

Надо как то узнать IP адрес при входящем соединении, но не создавая свой сокет.
Сейчас схема такая:
QTcpServer=>QThread=>Worker=>QTcpSocket
QTcpServer на входящее соединение создает поток, который в свою очередь создает класс Worker, в котором создается сокет и последнему присваивается дексриптор сокета, который пришел на QTcpServer (дескриптор передается по все цепочке, корявенько, написано, но работает).
Так вот, надо сделать что то типа бана определенных IP адресов, таким образом, что бы не создавать всю эту цепочку, а по возможности отрубать на этапе входящего соединения в QTcpServer.
Пробовал создавать в QTcpServer::incomingConnection(...) временный сокет, но тогда соединение при удачной попытке (IP не надо блокировать) обрывается на основном сокете, который внутри потока работает.
Как быть?
Записан
carrygun
Гость
« Ответ #1 : Февраля 07, 2013, 13:06 »

Так сразу и не поймешь что у тебя. Но что если сервером ловить newConnection(), а в нем дергать nextPendingConnection()->peerAddress() и его проверять?
Записан
Bepec
Гость
« Ответ #2 : Февраля 07, 2013, 13:27 »

Правильно советует carrygun.

А вот то, что вы написали надо причёмывать граблями. Большииими такими Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.025 секунд. Запросов: 18.