Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Как правильно блокировать подключения в TServerSocket   Найти похожие ветки 

 
Lucefer   (2006-01-27 13:29) [0]

Есть TServerSocket (stThreadBlocking) в событии OnAccept я уже имею IP адрес клиента желающего соединиться. Теперь я его сравниваю со списком BlackList и хочу его блокировать, т.е. не принимать соединение и не создавать потока. Как это сделать?


 
Digitman ©   (2006-01-27 14:44) [1]

Никак.


 
Digitman ©   (2006-01-27 14:47) [2]

Поток ты можешь и не создавать, но соединение на момент возникновения OnAccept уже установлено, и ты можешь лишь разорвать его.
Предупредить установление соединения (дабы не дать ему состояться) штатными средствами компонента нельзя.


 
Lucefer   (2006-01-27 15:27) [3]

тогда, как правильней сделать?
1. Выполнять проверку на черный список непосредственно перед созданием Thread"a и передавать в созданный объект флаг о том что надо сразу же Terminate себя.
2.
2a.
 На OnAccept:
 if not CheckEnableIP(Socket.RemoteAddress) then begin
   Socket.Close;
   exit;
 end;
2b
 На GetThread
 if ClientSocket.RemoteAddress="" then begin
   SocketThread:=nil;
 end else begin
   SocketThread := TIOServerThread.Create( FALSE, ClientSocket);
 end;
3c
Что делать с событием ThreadStart? ничего?


 
Digitman ©   (2006-01-27 15:56) [4]

на OnGetThread:

if ClientSocket.RemoteAddress="нежелательный адрес" then
  ClientSocket.Close;

и все.

Раз ты не вернул в параметре SocketThread адрес явно созданного тобой своего трэд-объекта, по дифолту будет возвращен nil, при этом ServerSocket создаст дифолтный трэд-объект. который увидит, что ClientSocket закрыт  и тут же же завершит выполнение метода ClientExecute.


> Что делать с событием ThreadStart? ничего?


Ничего.
Просто никак не обрабатывай это событие.



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
4-1140715947
spyrytus
2006-02-23 20:32
2006.05.21
INT 16h


15-1146209866
xayam
2006-04-28 11:37
2006.05.21
ДА НЕ ВЕРЯТ - ЭТО ПРАВДА, но не моя


1-1144770658
Fenix
2006-04-11 19:50
2006.05.21
Вставка многострочного текста в ListView.


15-1145679526
Карелин Артем
2006-04-22 08:18
2006.05.21
Выправили мне вчера позвоночник.


15-1145770978
GrayFace
2006-04-23 09:42
2006.05.21
Assebler: call near ptr - актуально ли слово "near"?