地址错,控件发现不了。用SetErrorProc,它是ScktComp单元的东东。procedure ConnectErrorProc(ErrorCode: Integer);
begin
ShowMessage(Format('连接错,信息是:%s, 错误代码是:%d', [SysErrorMessage(Errorcode), ErrorCode]);
end;procedure TForm1.Button1OnClick(Sender: TObject);
begin
SetErrorProc(ConnectErrorProc);
//不用try了.
clientSocket1.Active := True;
end;
begin
ShowMessage(Format('连接错,信息是:%s, 错误代码是:%d', [SysErrorMessage(Errorcode), ErrorCode]);
end;procedure TForm1.Button1OnClick(Sender: TObject);
begin
SetErrorProc(ConnectErrorProc);
//不用try了.
clientSocket1.Active := True;
end;
解决方案 »
- 远程获取滚动文字广告 师傅们进来看看 在线等 急
- 动态生成组件并可随意拖放?
- 动态创建嵌套控件
- 请问:文字怎么显示不全?
- 怎样在delphi中调用打印对话框,来选择打印机?
- 哪里有介绍DELPHI动态连接库制作的资料!谢了
- 一个打印的问题,如果字段多怎么办?
- 谁给讲讲mediaplay控件最简单的用法,必须配置的属性..
- 100分! EXCEL 里怎么实现,通过下拉菜单选择另外一个EXCEL文件中某列的值
- 今天狠了狠心买了一本<<Delphi 5开发人员指南>>,花了我十分之一的工资!心疼啊!散点分!
- =========有关报表打印的简单问题!!!===========在线等待
- delphi中“回车”怎么表示?
使用Address倒是没有这问题..可能是一个BUG..
可以找一下以前的贴子..或者是换换其它的组件.试试.
你的程序好像不起作用,设定了之后,并不处理异常
to halfdream(哈欠): 的确,用了address好像就没有事了,难道真的是bug,可是用address的话,我就没有办法让用户输入 机器名了,而只能输入ip地址了,谢谢各位帮忙,还请继续
-->可是用address的话,我就没有办法让用户输入 机器名了,而只能输入ip地址
你可以先通过host得到得到IP...
uses winsock;
function nametoip(name:string):string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
result:='''';
WSAStartup(2, WSAData);
HostEnt:=gethostbyname(PChar(name));
if HostEnt<>nil then
begin
with HostEnt^ do
result:= Format('%d.%d.%d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
end;
WSACleanup;
end;
ctNonBlocking的上面的代码就不行了。ctNonBlocking的机制因为全是不是同步的,它只能靠消息来进行,错误来了,它会通知OnError事件,所以只能用ClientSocket.OnError,先把错误信息保存,再将ErrorCode := 0