如何实现indy9 UDPServer多线程? ( 积分: 50 )

  • 主题发起人 主题发起人 pcmagic
  • 开始时间 开始时间
P

pcmagic

Unregistered / Unconfirmed
GUEST, unregistred user!
下面代码如何改成多线程?
procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject;
AData: TStream;
ABinding: TIdSocketHandle);
var
DataStringStream: TStringStream;
s: String;
begin
DataStringStream := TStringStream.Create('');
try
DataStringStream.CopyFrom(AData, AData.Size);
UDPMemo.Lines.Add('Received "' + DataStringStream.DataString + '"
from ' + ABinding.PeerIP + ' on port ' + IntToStr(ABinding.PeerPort));
s := 'Replied from ' + UDPServer.LocalName + ' to "' + DataStringStream.DataString + '"';
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
finally
DataStringStream.Free;
end;
end;
 
INDY 本身就是支持多线程的,什么都不用改啊。楼主什么意思呢?在 bindings里面监听多个端口,每个连接近来的请求会自动建立一条线程的。
 
indy udpserver 本身好象不支持多线程呀
 
UPD 不需要多线程。(非阻塞)
 
后退
顶部