Wilfried Mestdagh schrieb:

Hello Frank,

the client has the event OnChangeState but the server have nothing like
this for the client-connection-lost (not disconnect).

There is no event for a looze connection. If you pull out the network
cable from the client, then both server and client will stay connected,
because to disconnect a packet must be send witch is not the case here.

The only way to know is to send something. then immedialty the
connection will clsoe and OnSessionClosed will fire with a winsock
error.

i tried to set events for new created clients, ive tried to send data to
the client and waiting for an error, but noting happens ;<

2 things will happen:
- Send will raise an exception (did you put it into exception block?)
- OnSessionClose will fire
in case of TWSocketServer you best use OnClientDisconnect.

i don't use a exception-block, but without it the error should be also fired, but i get none. sending from server to client raises also no error (where should be fired one (OnDataSend)?).

greets Frank

here some code:

//trying to send some useless stuff to the clients periodically
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
 for i:=0 to WSocketServer1.ClientCount-1 do
 begin
   WSocketServer1.Client[i].SendStr('Blah'+#13#10);
 end;
end;

//the client-disconnect (display shows the message in a memo)
procedure TForm1.WSocketServer1ClientDisconnect(Sender: TObject;
 Client: TWSocketClient; Error: Word);
begin
 if Error<>0 then showmessage('error');
 Display('disconnect:'+client.GetPeerAddr+' '+discon);
end;

The memo will be filled on regular disconnect, but the error is always 0 also when i pull out the network cable.

the client fires after a short time (5 seconds) the OnChangeState-Event.

Greets Frank

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to