Hey,
Zu meinem Problem, von meiner Nickliste in meinem Chat.
Durch folgenden Code werden die Clients aufgelistet
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
voice: OLEVariant;
begin
label1.Caption := ServerSocket1.Socket.Connections[Listbox1.Items.Count].RemoteAddress;
Listbox1.Items.Add(label1.caption);
memo1.Lines.Add('Neuer Client hat sich verbunden : '+label1.caption+' .');
mediaplayer1.FileName := 'Sounds/connect.wav';
mediaplayer1.Open;
mediaplayer1.Play;
end;
Und beim Client so
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (ClientSocket1.Socket.Connected = false) then begin
ClientSocket1.Active := true;
end
else begin
timer1.Enabled := false;
end;
end;
OnClientdisconnect :
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
bitbtn2.Click;
listbox1.Items.Clear;
bitbtn2.Click;
ServerSocket1.Active := false;
bitbtn2.Click;
ServerSocket1.Active := true;
bitbtn2.Click;
bitbtn2.Enabled := false;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
SelectedVictim := -1;
Memo1.Lines.Add('Verbindung getrennt mit : '+label1.Caption+' .');
end;
Nur wenn der Client das Programm offen lässt und z.B einfach den Computer herunterfährt, bleibt der Client in der Liste obwohl er garnichtmehr verbunden ist.
Gibt es da noch eine Funktion ala Timeout , oder wie kann mann sich da behelfen?
Mit freundlichen Grüßen,
luckys41