Russian Qt Forum
Ноябрь 23, 2024, 15:12
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
Узнать IP адрес в QTcpServer до создания своего сокета
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Узнать IP адрес в QTcpServer до создания своего сокета (Прочитано 3365 раз)
RedDog
Гость
Узнать IP адрес в QTcpServer до создания своего сокета
«
:
Февраль 07, 2013, 12:58 »
Надо как то узнать IP адрес при входящем соединении, но не создавая свой сокет.
Сейчас схема такая:
QTcpServer=>QThread=>Worker=>QTcpSocket
QTcpServer на входящее соединение создает поток, который в свою очередь создает класс Worker, в котором создается сокет и последнему присваивается дексриптор сокета, который пришел на QTcpServer (дескриптор передается по все цепочке, корявенько, написано, но работает).
Так вот, надо сделать что то типа бана определенных IP адресов, таким образом, что бы не создавать всю эту цепочку, а по возможности отрубать на этапе входящего соединения в QTcpServer.
Пробовал создавать в QTcpServer::incomingConnection(...) временный сокет, но тогда соединение при удачной попытке (IP не надо блокировать) обрывается на основном сокете, который внутри потока работает.
Как быть?
Записан
carrygun
Гость
Re: Узнать IP адрес в QTcpServer до создания своего сокета
«
Ответ #1 :
Февраль 07, 2013, 13:06 »
Так сразу и не поймешь что у тебя. Но что если сервером ловить newConnection(), а в нем дергать nextPendingConnection()->peerAddress() и его проверять?
Записан
Bepec
Гость
Re: Узнать IP адрес в QTcpServer до создания своего сокета
«
Ответ #2 :
Февраль 07, 2013, 13:27 »
Правильно советует carrygun.
А вот то, что вы написали надо причёмывать граблями. Большииими такими
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...