TIdTCPClient不会处理异常

时间:2014-04-03 06:58:43

标签: sockets error-handling indy10

我将旧的indy 9迁移到indy 10包中,但我遇到了一个重大错误:

按顺序,我制作一个新的TidTCPClient:

TIdTCPClient* IdTCPClient = new TIdTCPClient(NULL);

我设置了主机和端口,然后将其连接到:

IdTCPClient->Connect();

从现在起,我发送的数据如下:

try
    {       
    IdTCPClient->IOHandler->WriteLn(frame);
    }
catch (const EIdException &e)
    {
    Error(e);       
    }

我的问题是如果我丢失了网络连接,或者服务器停止运行,我收到一个套接字错误10054,其中一个由catch处理,所以我断开了我的套接字:

try
        {
        IdTCPClient->Disconnect(false);
        if(IdTCPClient->IOHandler != NULL)
            {
            IdTCPClient->IOHandler->InputBuffer->Clear();
                            }
        }
        catch(const EIdException  &ex)
        {
        }

但是有了这一切,应用程序继续弹出一个带有套接字错误的错误消息,但是我的try catch仍然在这里!!

那么如何隐藏indy发送的这条错误信息呢?

感谢。

0 个答案:

没有答案