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!
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!
naja, ich wäre für vorschläge dankbar
thx
pp