当前位置: 首页>>代码示例>>C++>>正文


C++ ServerSocket::setSoTimeout方法代码示例

本文整理汇总了C++中ServerSocket::setSoTimeout方法的典型用法代码示例。如果您正苦于以下问题:C++ ServerSocket::setSoTimeout方法的具体用法?C++ ServerSocket::setSoTimeout怎么用?C++ ServerSocket::setSoTimeout使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ServerSocket的用法示例。


在下文中一共展示了ServerSocket::setSoTimeout方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: sync

void* APR_THREAD_FUNC SocketHubAppender::monitor(apr_thread_t* /* thread */, void* data) {
        SocketHubAppender* pThis = (SocketHubAppender*) data;

        ServerSocket* serverSocket = 0;

        try
        {
                serverSocket = new ServerSocket(pThis->port);
                serverSocket->setSoTimeout(1000);
        }
        catch (SocketException& e)
        {
                LogLog::error(LOG4CXX_STR("exception setting timeout, shutting down server socket."), e);
                delete serverSocket;
                return NULL;
        }

        bool stopRunning = pThis->closed;
        while (!stopRunning)
        {
                SocketPtr socket;
                try
                {
                        socket = serverSocket->accept();
                }
                catch (InterruptedIOException&)
                {
                        // timeout occurred, so just loop
                }
                catch (SocketException& e)
                {
                        LogLog::error(LOG4CXX_STR("exception accepting socket, shutting down server socket."), e);
                        stopRunning = true;
                }
                catch (IOException& e)
                {
                        LogLog::error(LOG4CXX_STR("exception accepting socket."), e);
                }

                // if there was a socket accepted
                if (socket != 0)
                {
                        try
                        {
                                InetAddressPtr remoteAddress = socket->getInetAddress();
                                LogLog::debug(LOG4CXX_STR("accepting connection from ")
                                       + remoteAddress->getHostName()
                                       + LOG4CXX_STR(" (")
                                       + remoteAddress->getHostAddress()
                                       + LOG4CXX_STR(")"));

                                // add it to the oosList.
                                synchronized sync(pThis->mutex);
                                OutputStreamPtr os(new SocketOutputStream(socket));
                                Pool p;
                                ObjectOutputStreamPtr oos(new ObjectOutputStream(os, p));
                                pThis->streams.push_back(oos);
                        }
                        catch (IOException& e)
                        {
                                LogLog::error(LOG4CXX_STR("exception creating output stream on socket."), e);
                        }
                }
                stopRunning = (stopRunning || pThis->closed);
        }
        delete serverSocket;
        return NULL;
}
开发者ID:herryRiver,项目名称:sdl_core_v3.6_wince,代码行数:68,代码来源:sockethubappender.cpp


注:本文中的ServerSocket::setSoTimeout方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。