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


C++ TCPSocket::Error方法代码示例

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


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

示例1: if


//.........这里部分代码省略.........
                          "\n");
            TCPSocket *tcp = static_cast<TCPSocket *>(s);
            if (tcp == NULL)
            {
              gLog.Warn(tr("%sInvalid server TCP socket in set.\n"), L_WARNxSTR);
              close(nCurrentSocket);
            }
            else
            {
              TCPSocket *newSocket = new TCPSocket(0);
              tcp->RecvConnection(*newSocket);
              gSocketManager.DropSocket(tcp);
              gSocketManager.AddSocket(newSocket);
              gSocketManager.DropSocket(newSocket);
            }
          }

          // Message from connected socket--------------------------------------
          else
          {
            DEBUG_THREADS("[MonitorSockets_tep] Data on TCP user socket.\n");

            ssl_recv:

            TCPSocket *tcp = static_cast<TCPSocket *>(s);

            // If tcp is NULL then the socket is no longer in the set, hence it
            // must have been closed by us and we can ignore it.
            if (tcp == NULL)
              goto socket_done;

            if (!tcp->RecvPacket())
            {
              int err = tcp->Error();
              if (err == 0)
                gLog.Info(tr("%sConnection to %lu was closed.\n"), L_TCPxSTR
                                                             , tcp->Owner());
              else
              {
                char buf[128];
                gLog.Info(tr("%sConnection to %lu lost:\n%s%s.\n"), L_TCPxSTR,
                          tcp->Owner(), L_BLANKxSTR, tcp->ErrorStr(buf, 128));
              }
              ICQUser *u = gUserManager.FetchUser(tcp->OwnerId(),
                tcp->OwnerPPID(), LOCK_W);
              if (u && u->Secure())
              {
                u->ClearSocketDesc(ICQ_CHNxNONE);
                u->SetSecure(false);
                d->PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER,
                  USER_SECURITY, u->IdString(), u->PPID(), 0));
              }
              gUserManager.DropUser(u);
              gSocketManager.DropSocket(tcp);
              gSocketManager.CloseSocket(nCurrentSocket);
              d->FailEvents(nCurrentSocket, err);

              break;
            }

            // Save the bytes pending status of the socket
            bool bPending = tcp->SSL_Pending();
            bool r = true;

            // Process the packet if the buffer is full
            if (tcp->RecvBufferFull())
开发者ID:nic0lae,项目名称:freebsddistro,代码行数:67,代码来源:icqd-threads.cpp


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