如何解决客户端先于服务端启动的问题?谢谢

lfish1970 2006-11-08 04:02:07
小弟刚先CBC,有学习socket中有一个问题:客户端ClientSocket先启动,在窗体激活时ClientSocket->OPEN();,然后启动服务端进入监听状态,此时服务端无反应,如果相反,先启动服务端再启动客户端就正常,但无法保证客户端后启动,应如何解决?谢谢!
(在客户端的也没有捕获到OnError事件)
...全文
305 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfish1970 2006-11-20
  • 打赏
  • 举报
回复
在管理中已经给分,怎么显示不出来?
lfish1970 2006-11-20
  • 打赏
  • 举报
回复
谢谢!,可能是系统有问题,后来在另外一台机器上就没问题了!
LuoGD 2006-11-14
  • 打赏
  • 举报
回复
ClientSocket不要设置为Active不要设置为true
Bear_hx 2006-11-14
  • 打赏
  • 举报
回复
这段代码供你参考:是写在TClientSocket的OnError中的。
var
i:integer;
begin
Screen.Cursor:=crdefault;
case ErrorCode of
10053:
begin
c.Socket.Close ;
Tray1.ShowBalloonHint('错误','你与服务器的连接已断开!',bhiError);
ErrorCode:=0;

for i:=0 to GPFriend.Items.Count-1 do
begin
GPFriend.Items[i].Enabled:=false;
end;
end;
10060:
begin
if assigned(frmconfig) then
if assigned(frmconfig.c) then
begin
frmconfig.c.Close;
frmconfig.c.free;
end;
Tray1.ShowBalloonHint('错误','网络上不存在该IP地址请重新设置!',bhiError);
ErrorCode:=0;
end;
10061:
begin
if assigned(frmconfig) then
if assigned(frmconfig.c) then
begin
frmconfig.c.Close;
frmconfig.c.free;
end;
Tray1.ShowBalloonHint('错误','服务器没有启动,请检查系统设置!',bhiError);
IsSrvStart:=false;
ErrorCode:=0;
end;
end;
end;
Bear_hx 2006-11-14
  • 打赏
  • 举报
回复
TClientSocket有判断服务器是否存在的函数,而且在TClientSocket返回的错误代码中也有一个是标识服务器不存在的,你找一下。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧