Russian Qt Forum

Qt => Работа с сетью => Тема начата: Lostinnet от Ноябрь 17, 2010, 12:31



Название: IP адрес клиента в QTcpServer
Отправлено: Lostinnet от Ноябрь 17, 2010, 12:31
Подскажите, имеется ли возможность определеить IP адрес подключаемого клиента, без создания QTcpSocket.
Необходимо отсекать от подключения запрещенные IP адреса


Название: Re: IP адрес клиента в QTcpServer
Отправлено: kuzulis от Ноябрь 17, 2010, 12:41
Нет. Информация о вновь подключившемся клиенте (его IP-шник) можно узнать только из сокета.
И в чем проблема то?  Тем более, что сокет все-равно создается автоматом...


Название: Re: IP адрес клиента в QTcpServer
Отправлено: Lostinnet от Ноябрь 17, 2010, 12:45
большие накладные расходы.
- создать поток, создать сокет... потом все это дело уничтожать, и будут у меня висеть потоки зомби


Название: Re: IP адрес клиента в QTcpServer
Отправлено: BRE от Ноябрь 17, 2010, 12:50
большие накладные расходы.
- создать поток, создать сокет... потом все это дело уничтожать, и будут у меня висеть потоки зомби
Какой поток, какой зомби?  ;)
При подключении клиента, ты получаешь от QTcpServer указатель на объект сокет, смотри IP клиента, закрывай соединение и убивай объект сокет.


Название: Re: IP адрес клиента в QTcpServer
Отправлено: Lostinnet от Ноябрь 17, 2010, 13:14
Просто у меня сервер многопоточный


Название: Re: IP адрес клиента в QTcpServer
Отправлено: BRE от Ноябрь 17, 2010, 13:39
Просто у меня сервер многопоточный
Ну и что?
Если клиент прошел проверку, то создавай для него поток (хоть это и не очень хорошая идея для высоконагруженных серверов), если нет - то закрывай соединение и не запуская поток.