在TServerSocket的onclientread事件中使用:
function TServerManage.OnClientRead(ASocket: TCustomSocket; AData: Pointer;
ACount: Integer): Integer;
var
Buffer:String;
p:pointer;
DataBlock:TDataBlock;begin
SetLength(Buffer,ACount);
try
System.Move(Adata^,Buffer[1],ACount);
//处理完成后的返回消息,不论如何处理,都应该向发报机提供一个返回的消息
dataBlock := MakeGetinfo(Buffer, '');
p := @dataBlock; ASocket.Write(P^, 255); // 发送返回的消息
finally
SetLength(Buffer, 0);
Result := 0;
end;end;现在发现第一次发送后,系统会重新进入到onclientread,这时buffer中的值全部#0.acount值还是255.
一直不停地进入如何处理?
function TServerManage.OnClientRead(ASocket: TCustomSocket; AData: Pointer;
ACount: Integer): Integer;
var
Buffer:String;
p:pointer;
DataBlock:TDataBlock;begin
SetLength(Buffer,ACount);
try
System.Move(Adata^,Buffer[1],ACount);
//处理完成后的返回消息,不论如何处理,都应该向发报机提供一个返回的消息
dataBlock := MakeGetinfo(Buffer, '');
p := @dataBlock; ASocket.Write(P^, 255); // 发送返回的消息
finally
SetLength(Buffer, 0);
Result := 0;
end;end;现在发现第一次发送后,系统会重新进入到onclientread,这时buffer中的值全部#0.acount值还是255.
一直不停地进入如何处理?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货