【发布时间】:2014-03-20 16:16:14
【问题描述】:
当我知道我希望从客户端获得多少字节(在此代码中为 100)时,我遇到了这种情况。如果客户端没有给我 100,我根本不需要这个数据包,因为它已损坏。
我遇到客户端提供少于 100 个字节并断开连接的情况。在这种情况下,我正在捕获异常,一切都会好起来的,只是在此异常之后我的ServerTCPExecute 被多次不连续地调用。没有任何其他客户端连接。为什么会这样?如果我这样做 TIdYarnOfThread(AContext.Yarn).Thread.Terminate; 一切都会好起来的。但我不确定这是一个好的解决方案。
procedure Form1.ServerTCPExecute(AContext: TIdContext);
begin
try
AContext.Connection.IOHandler.ReadBytes(b, 100, False);
except
//TIdYarnOfThread(AContext.Yarn).Thread.Terminate;
end;
end;
【问题讨论】: