Client先发送消息,然后Server再打开,然后再发送消息,Server就收不到消息。。

linkboy2004 2007-06-11 03:25:54
Client先发送消息,然后Server再打开,然后再发送消息,Server就收不到消息。。
这是为什么?
如果先开Server没问题。
clinet
ClientSocket1->Address="192.168.1.1";
ClientSocket1->Port=7000;
ClientSocket1->Active=true;
ClientSocket1->Socket->Connect(0);
ClientSocket1->Socket->SendText(msg);
ClientSocket1->Socket->Close();


server
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString msg=Socket->ReceiveText();
Memo1->Lines->Add(msg);
}
...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
n27741 2007-06-17
  • 打赏
  • 举报
回复
1 server没有启动,client发送消息 应该会出现"目标积极拒绝"这样的异常

2 server如果比client后启动的话,client应该重新将active属性设置为true才行

3 很显然对于网络连接是否成功需要用异常来处理。

4 用时间来衡量,必须有一个超时判断.比如你放一个timer,每隔段5秒就尝试连接以下server
超过5次 也就是25秒,可以认为要么服务器停止 要么网络是断开的
linkboy2004 2007-06-16
  • 打赏
  • 举报
回复
?
linkboy2004 2007-06-13
  • 打赏
  • 举报
回复
ClientSocket1->Active=false;
ClientSocket1->Active=true;

这什么意思?先false?
会出错。
ClientSocket1->Active=true;OK
linkboy2004 2007-06-12
  • 打赏
  • 举报
回复
不是,开始是没开,没收到正常。关键是我发送一次后(没收到无所谓),我开了Server再发也收不到了。。。
FFSB 2007-06-12
  • 打赏
  • 举报
回复
clinet
ClientSocket1->Address="192.168.1.1";
ClientSocket1->Port=7000;
ClientSocket1->Active=false;
ClientSocket1->Active=true;
ClientSocket1->Socket->SendText(msg);
FFSB 2007-06-12
  • 打赏
  • 举报
回复
ClientSocket1->Socket->Connect(0);//这是干吗?
LuoGD 2007-06-11
  • 打赏
  • 举报
回复
Server没打开,CLIENT怎么发?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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