首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Client先发送消息,然后Server再打开,然后再发送消息,Server就收不到消息。该怎么处理

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

Client先发送消息,然后Server再打开,然后再发送消息,Server就收不到消息。。
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);
}

[解决办法]
clinet
ClientSocket1-> Address= "192.168.1.1 ";
ClientSocket1-> Port=7000;
ClientSocket1-> Active=false;
ClientSocket1-> Active=true;
ClientSocket1-> Socket-> SendText(msg);

[解决办法]
1 server没有启动,client发送消息 应该会出现 "目标积极拒绝 "这样的异常

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

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

4 用时间来衡量,必须有一个超时判断.比如你放一个timer,每隔段5秒就尝试连接以下server
超过5次 也就是25秒,可以认为要么服务器停止 要么网络是断开的

热点排行