type
TMyThread = class(TThread)
private
Buf: TIdBytes;
MyABinding: TIdSocketHandle;
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
published
end;
procedure TAutoDataService.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TIdBytes; ABinding: TIdSocketHandle);
var
MyThread:TMyThread;
begin
MyThread:=TMyThread.Create(true);
with MyRecThread do
begin
buf:=AData;
MyABinding:=ABinding;
Resume;
end;
end;
用IdUDPServer接收数据,当数据量较大时偶然会出现AData和ABinding.PreeIp不匹配,即接收的数据(AData),不是PreeIp地址所发出的。
有办法解决吗?
解决方案 »
- Delphi2010字段AsAnsiString取值乱码的问题
- 一个DataSet,分多个DBGrid显示
- 奇怪:listview的columns的width值为什么不能将手动调整的结果记下来?
- 如何提取字符串'sss'#13'aaa' #13前的字符串sss?(在线)
- XML相关的加密规范!
- inno setup 特殊效果,求高手相助!!!
- pascal 中如何判断按下了pageUp、pageDown以及上下左右键
- 怎样将dbgrid中某一行中的数据按字段分别取到另一个窗口的指定文本框中。谢谢
- CONTROL+f2突然间没效果了,该怎么办?
- 帮忙回答一下各位!
- 求助:伪彩映射--类似于Matlab里的bone编码方法
- 控制excel文件,出现------OLE error 800A03EC-----错误
1.进入读事件后,马上将AData和ABinding保存下来处理。
2.或者先放到一个队列里,另一个程序,如定时器或者线程去处理这个数据队列。