ClientSocket错误捕捉(100分)

  • 主题发起人 主题发起人 zxtyhy
  • 开始时间 开始时间
Z

zxtyhy

Unregistered / Unconfirmed
GUEST, unregistred user!
ClientSocket.Active:=False;
ClientSocket.Host:='cccc';(不存在的名称)
ClientSocket.Port:='80';
ClientSocket.Open;

会有错误11001出现, 但是在OnError中无法扑捉
通过改SoktComp.pas的原代码,可以解决在OnError中的扑捉问题,
但是在运行
ClientSocket.Active:=False;
ClientSocket.Host:='pcb1';(存在的名称)
ClientSocket.Port:='80';
ClientSocket.Open;
时却出错10049, 再次运行才能连接
不知何故要运行两次才可以连接?

 
你是如何修改的?
 
try
ClientSocket.Open;
except
on ... 错误处理
end;
 
我也碰到了,正头大呢,关注。。。。。。
 
D5提供了一个用户可以处理Socket的出错

//这里作如果Socket出错做什么,VCL是raise(Abort running)
procedure ErrorProc(ErrorCode: Integer);
begin
ShowMessage(SysErrorMessage(ErrorCode))
end;

procedure TForm1.FormCreate(Sender: TObject);
begin{接管Socket出错处理,即说Socket出错了,你负责处理}
ScktComp.SetErrorProc(ErrorProc);
end;
 
"会有错误11001出现, 但是在OnError中无法扑捉"

如何做的??
 
请问你是如何改ScktComp的,我才能帮你找出错误的原因
 
ClientSocket.Active:=False;
ClientSocket.Host:='cccc';(不存在的名称)
ClientSocket.Port:='80';
ClientSocket.Open;

它们完全可以捕捉到错误:
ESocketError with message 'Windows socket error:不知道这样的主机。(11001),
on API ‘ASync lookup’'
 
接受答案了.
 
后退
顶部