ClientSocket&ServerSocket使用问题(50分)

X

xsjs

Unregistered / Unconfirmed
GUEST, unregistred user!
我用socket作了个局域网通信程序,当ClientSocket试图连接ServerSocket时如果
serversocker端的程序没有运行则会报错。
请问各位大虾如何屏蔽系统的错误提示,由程序捕获错误代码并处理,然后再提示给用户。
 
怎的冷冷清清,请大家继续讨论!!!
 
ErrorCode := 0;
便不会弹出异常了
 
我是这么做的: (是不是太烦了?)
procedure TForm1.Button1Click(Sender: TObject);
var
m,i:Integer;
find:Boolean;
mstr:String;
begin
try
m:=StrToInt(Edit1.Text);
except
ErrorShow('端口号非法!');
//ErrorShow 等价于 ShowMessage
exit;
end;
if Length(Edit2.Text)=0 then
begin
ErrorShow('端口号非法!');
exit;
end;
with ClientSocket1 do
begin
if Edit2.Text[1] in ['0'..'9'] then
begin
Host:='';
Address:=Edit2.Text;
end
else
begin
try
Host:=Edit2.Text;
except
ErrorShow('远程主机地址设置错误!');
exit;
end;
end;
try
Port:=m;
except
ErrorShow('端口号设置错误!');
exit;
end;
try
Open;
except
ErrorShow('无法打开Socket!');
exit;
end;
end;
end;

//错误捕获
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
case ErrorEvent of
eeConnect:
begin
TTYWrite('连接失败.');
//TTYWrite 等价于 ShowMessage
ClientSocket1.Close;
end;
eeSend: TTYWrite('发送失败.');
eeReceive: TTYWrite('接收失败.');
eeDisconnect: TTYWrite('断开错误.');
eeAccept: TTYWrite('接受失败.');
else
TTYWrite('不明的Socket错误!');
end;
ErrorCode:=0;
end;
 
请继续讨论
 
try...except...end麻
 
这问题早该结束了,在ClientSocket中的OnError 事件中把ErrorCode=0
上面有一位早提过了
 
用Socket不好
 
无效的方法
ErrorCode:=0;
try except
正确的方法
在Form上放入ApplicationEvent控件
 
请问 lxddd
ApplicationEvent 如何用?
 
如果是d5,直接使用Additional栏里的ApplicationEvent,
否则必须在Form.OnCreate里给Application.OnException定义
一个事件
 
lxddd说得没错,
ErrorCode:=0;
try except
是无效的方法,也不知道那些人试过没有,反正我用的时候,
该错就错,TMD。
applicationEvent到没有试过。
 
>>creation-zy 我本来想多给你些分,可是我的给分列表中却没你的名字
不知是何原因。
 
jie shou da an
 
请看LID=539454。
你可以让版主帮忙发分。
 
顶部