TIdUDPServer.Active:=true;错误后的异常处理
独醒子 2011-01-20 09:55:50 刚发个帖子没人回 再发一贴
程序设置一个数组aryPort[0..9],存放了10个端口号。
程序一开始做个循环,找到第一个没被使用的端口号使用。
也就是在循环内设置下一个端口号并且打开,当失败后继续试下一个。
udp:TIdUDPServer控件
procedure TfrmMain.FormCreate(Sender: TObject);
var i:Integer;
begin
for i:=0 to 9 do
begin
try
udp.Active:=true;
if udp.Active=true then break;
except
end;
end;
end;
就程序开始这么几句话,非常简单。但是出现问题。
如果第一个端口号未被使用,程序会打开此端口开始监听。
若端口被占用,即 udp.Active:=true; 语句出错抛出异常。
主程序窗口会显示,但循环停止了。
我该如何处理此类事情呢?
请高手指点
ps:我程序是服务端也是客户端,当然有原因不能使用固定端口号。
请指教 谢谢 在线等待。