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

关于Socket try.catch. 提示框的有关问题,紧急

2012-02-04 
关于Sockettry...catch... 提示框的问题,紧急!try{ClientSocket1-Socket-Close()ClientSocket-Address

关于Socket try...catch... 提示框的问题,紧急!
try
{
  ClientSocket1->Socket->Close();
  ClientSocket->Address=IP;
  ClientSocket1->Open;
  ClientSocket1->Socket->SendText('Reboot');
}
catch(ESocketError)
{
  ClientSocket1->Socket->Close();
}
当对方未开机或IP不通时报错,我怎么样让它不弹出错误提示框,因为我的代码是轮循的,这个提示框就停止循环了,必须人为干预才行,我想让它不报错继续运行!用delphi的finally就可以,但C我就不知道怎么办了!
另为:
Socket->Address动态变化时,ClientSocket1->Socket->SendText('Reboot')两次,对方才能收到,不知为什么?以前用delphi一次就行,不知是否与网络配置有关!

[解决办法]
首先 用try catch是可以抓到异常的
不知道你是在调试状态下跑的呢还是其他什么原因

还可以用另一个方法来避免报错在SocketError里写ErrorCode = 0
void __fastcall TForm1::ClientSocket1Error(TObject *Sender, TCustomWinSocket *Socket,
TErrorEvent ErrorEvent, int &ErrorCode)
{
...............//上面写你根据ErrorCode来处理的代码
ErrorCode = 0; //最后加这一句
}
[解决办法]
C++ Builder也有finally
[解决办法]
try catch 在调试阶段,只要符合条件它就会弹出异常。当你运行你的exe文件它就不会提示错误了

热点排行