PeterPan - Mi 10.08.05 15:08
Titel: Execute beim Disconnect TIdTCPServer
hallo leute,
hab mal wieder eine frage.. :)
beim diconnect am server geht er in execute,
wie kann ich dass verhindern?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TTcpServerClass.TcpServerExecute(AThread: TIdPeerThread); var _MStream: TMemoryStream; _HandleMsg: THandleMsg; _HandleStream: THandleMsgStream; _iMsgType, _iTSize: integer; begin
if not AThread.Connection.Socket.Readable(0) then Exit;
...................... |
hat jemand eine idee?
thx
pp
PeterPan - Mi 10.08.05 15:41
hallo,
das geht aber auch nicht...
Delphi-Quelltext
1:
| if not AThread.Connected then exit; |
geht garnicht!
:!: :!:
und das
Delphi-Quelltext
1:
| if not AThread.Connection.Connected then exit; |
nutzt mir nix, er ist ja noch beim disconnect!
mal ein wenig mehr code!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TTcpServerClass.TcpServerExecute(AThread: TIdPeerThread); var _MStream: TMemoryStream; _HandleMsg: THandleMsg; _HandleStream: THandleMsgStream; _iMsgType, _iTSize: integer; begin
if not AThread.Connection.Socket.Readable(0) then Exit;
if not AThread.Connection.Connected then exit;
_MStream := NIL; _HandleMsg := NIL;
try _iTSize:= AThread.Connection.ReadInteger;
_MStream := TMemoryStream.Create;
AThread.Connection.ReadStream(_MStream, _iTSize-4, False);
if (_iTSize-4)<>(_MStream.Size) then HandleMsg(Self, ERROR_TOTAL_SIZE_MISS_MATCH, msgError); |
ich muss wissen ob daten im buffer sind oder ob das "Execute" ereigniss aus einem andern grund erfolgt.
noch ein hinweis!
ich habe keinen einfluss auf den client!
Protokoll scheidet aus!
:? :? 8)
naja, ich wäre für vorschläge dankbar :D
thx
pp