本文整理汇总了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())