请教各位网友:问个如何使用try...finally去判断socket端口的问题(0分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序是个客户端的程序,它的功能是:
试图与一个服务器连接(服务器的IP是已知的,但Port是未知的),
当连接成功时,程序结束并返回Port,请看:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
clientsocket1.Address:='127.0.0.1';
for i:=2 to 100 do
begin
clientsocket1.Port:=i;
clientsocket1.Active:=true;
if clientsocket1.Socket.Connected then
begin
edit1.Text:=inttostr(i);
exit;
end else clientsocket1.Active:=false;
end;
end;
但此程序在运行老是出现ESocketError的错误(10061),
故我想用try....finally这样的语句,但不知
该如何写,请问:如按我以上所说的该程序要
完成的功能,我该如何写呢?谢谢
 
try
ClientSocket1.Active := True;
except
On ESocketError do
your code
 
在OnSocketError事件中将Error设为0,但好象只针对csNonBlocking类型有用。
在csBlocking下为什么没用我就不得而知了,希望高手赐教。
 
接受答案了.
 
后退
顶部