Ver Mensaje Individual
  #2  
Antiguo 26-02-2008
radixzz radixzz is offline
Registrado
 
Registrado: feb 2008
Posts: 5
Reputación: 0
radixzz Va por buen camino
Wink TClientSocket

Pues lo unico que tienes que hacer es hacer una comparación de la ip del cliente dentro del evento OnConnect del TServerSocket

la comparacion seria algo asi:


Código Delphi [-]
if AContext.Connection.Socket.Binding.PeerIP='192.168.1.1' then Begin  {Manda un mensaje de desconexion o simplemente desconectalo} 
End;

es un modo muy manual pero sirve, si quieres tener una especia de blacklist podrias crear una lista de tipo tList y buscar el hilo para desconectarlo usando una funcion como esta:


Código Delphi [-]
Function BuscaHiloporIP(direccionIP:shortstring):integer;
var
  ListaCXN:tList;
  match,i:integer;
Begin
ListaCXN:=ServerSocket.Contexts.LockList;
match:=-1;
Try
  IF ListaCXN.Count>0 Then
  Begin
      For i:=0 to ListaCXN.Count-1 DO Begin
        IF TidContext(ListaCXN.Items[i]).Connection.Socket.Binding.PeerIP=direccionIP Then
        Begin
        match:=i;
        break;
        end else begin
        match:=-1;
        End;
      End;
  End;
Finally
ServerSocket.Contexts.UnlockList;
result:=match;
End;
End;


Un Saludo!

Última edición por radixzz fecha: 26-02-2008 a las 20:05:26.
Responder Con Cita