ClientSocket使用Open()连不上服务器的问题,在线等待!!!!

weep_boy 2004-12-03 01:03:04
我需要用ClientSocket与服务器连接进行通讯.代码大概是这样的:
TClientSocket * ctskt=NULL;
ctskt = new TClientSocket(NULL);
ctskt->Active = false;
ctskt->Address = 省略;
ctskt->Port = 省略;

下面在一个方法里有这样的代码:
AnsiString messageinfo = "Hello!";

ctskt->Open();
ctskt->Socket->SendText(messageinfo);
每次调用这个方法的时候第一次服务器都没有收到消息,但第二次调用就有了,我加了调试代码在Open()和SendText()后,发现第一次调用该方法后该Socket一直是false的,但为什么第二次调用发数据就能收到呢?我用的是CB6,请大虾帮忙解决,在线等待!而且这里面Catch不到任何异常,使用ctskt->Active = True;代替Open(),结果一样不行!.....急急急!
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinhaiwu 2004-12-06
  • 打赏
  • 举报
回复
第一次放在onconnect事件里发送,第二次以后的在onread事件里发送就没有问题了。因为连接服务器需要时间,必须等带服务器有响应了才能发送信息。
weep_boy 2004-12-03
  • 打赏
  • 举报
回复
先SEND一次也不行,我试了,每次都是我第二次点按狃,就SEND成功了.
但如果我把按狃代码改成SEND2次,也会失败.怎么办啊.而且我试了,执行了Open(),后,根本就不出发它的onconnect事件.怎么办啊?
sxzqlzx 2004-12-03
  • 打赏
  • 举报
回复
程序中先send一次吧
weep_boy 2004-12-03
  • 打赏
  • 举报
回复
各位大虾,你们说的方法我都试了,都不行,总要我点第二次按狃(Open,SendText),然后服务器就收到了,看来问题不在上面啊?请大虾们试一下!
Lonelywolf1899 2004-12-03
  • 打赏
  • 举报
回复
首先要 ServerSocket->Active = true
sxzqlzx 2004-12-03
  • 打赏
  • 举报
回复
TClientSocket *ctskt = new TClientSocket();
ctskt->Address = 省略;
ctskt->Port = 省略;
ctskt->Active = false;
这样试一下,一个好的编程的分格是必要的,记得先给参数再调用

1,316

社区成员

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

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