Einzelnen Beitrag anzeigen

Pfanne

Registriert seit: 27. Jan 2011
23 Beiträge
 
#1

ServerSocket.Socket.Connections[i].Close;

  Alt 11. Feb 2011, 20:56
Hallo,

mit:

Delphi-Quellcode:
procedure Tfrm_Server.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  mem_EventLog.Lines.Add('ClientConnect Handle/IP: ' + IntToStr(Socket.SocketHandle) + ' / ' + Socket.RemoteAddress);
  Socket.SendText('Hallo');
  lbl_ServerIP.Caption := 'IP: ' + socket.LocalAddress;
  lb_Clients.Items.add(IntToStr(Socket.SocketHandle) + #9 + Socket.RemoteAddress);
end;
füge ich jeden neuen Client der"ListBox_Clients" hinzu.

mit:

Delphi-Quellcode:
{Close selected Clients}
procedure Tfrm_Server.bu_CloseSelectedClick(Sender: TObject);
var i: integer;
begin
  while not (lb_Clients.SelCount = 0) do
  begin
    for i := 0 to lb_Clients.Count -1 do
    begin
      if lb_Clients.Selected[i] then
      begin
        ServerSocket.Socket.Connections[i].Close;
        break;
      end;
    end;
  end;
end;
möchte ich die in der Liste selektierten Clients (auch Multiselekt) schließen.

Leider geht das ganze nur wenn 1 Client selektiert ist.
Bei mehreren geht es nicht mehr.
Ich habe schon bemerkt, dass unmittelbar nach:

ServerSocket.Socket.Connections[i].Close;

sich die Anzahl der serversocket.Socket.ActiveConnections nicht verringert.

Was mache ich verkehrt?

Danke......
  Mit Zitat antworten Zitat