本文整理汇总了C++中TCPSocket::KeepAlive方法的典型用法代码示例。如果您正苦于以下问题:C++ TCPSocket::KeepAlive方法的具体用法?C++ TCPSocket::KeepAlive怎么用?C++ TCPSocket::KeepAlive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TCPSocket
的用法示例。
在下文中一共展示了TCPSocket::KeepAlive方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetSessionTask
Task* CRTConnListener::GetSessionTask(int osSocket, struct sockaddr_in* addr)
{
TCPSocket* theSocket = NULL;
Assert(osSocket != EventContext::kInvalidFileDesc);
// when the server is behing a round robin DNS, the client needs to knwo the IP address ot the server
// so that it can direct the "POST" half of the connection to the same machine when tunnelling RTSP thru HTTP
CRTConnection* theTask = new CRTConnection();
if(NULL == theTask)
return NULL;
theSocket = theTask->GetSocket(); // out socket is not attached to a unix socket yet.
//set options on the socket
int sndBufSize = 96L * 1024L;
theSocket->Set(osSocket, addr);
theSocket->InitNonBlocking(osSocket);
//we are a server, always disable nagle algorithm
theSocket->NoDelay();
theSocket->KeepAlive();
theSocket->SetSocketBufSize(sndBufSize);
//setup the socket. When there is data on the socket,
//theTask will get an kReadEvent event
theSocket->RequestEvent(EV_RE);
theTask->SetTimer(30*1000);
StrPtrLen* remoteStr = theSocket->GetRemoteAddrStr();
LI("CRTConnListener Get a connection,ip:%.*s port:%d \n",remoteStr->Len, remoteStr->Ptr, ntohs(addr->sin_port));
this->RunNormal();
return theTask;
}
示例2: Init
void LRTGroupSession::Init()
{
TCPSocket* socket = this->GetSocket();
socket->Open();
socket->InitNonBlocking(socket->GetSocketFD());
socket->NoDelay();
socket->KeepAlive();
socket->SetSocketBufSize(96L * 1024L);
socket->SetTask(this);
this->SetTimer(120*1000);
for(int i=0;i<MSG_PACKED_ONCE_NUM;++i)
{
m_packedNewMsg.add_msgs();
}
for(int i=0;i<MSG_PACKED_ONCE_NUM;++i)
{
m_packedSeqnMsg.add_msgs();
}
for(int i=0;i<MSG_PACKED_ONCE_NUM;++i)
{
m_packedDataMsg.add_msgs();
}
}
示例3: ApsAppSrvSession
//acceptor模块调用GetSessionTask函数,创建一个连接会话,处理该socket句柄上的所有任务。
Task* ApsAppTcpListenerSocket::GetSessionTask(int osSocket, struct sockaddr_in* addr)
{
Assert(osSocket != EventContext::kInvalidFileDesc);
TCPSocket* theSocket = NULL;
//new one web accept session
ApsAppSrvSession* theTask = new ApsAppSrvSession();
ApsLogger::Debug("New PushClientSession, socket fd = %d task = %p!",osSocket,theTask);
if(NULL == theTask)//no enough memory, TCPListenerSocket will close the socket!
{
ApsLogger::Debug("PushClientSession create error: no memory!");
return NULL;
}
theSocket = theTask->GetSocket(); // out socket is not attached to a unix socket yet.
//set options on the socket
int sndBufSize = 1000L * 1024L;
theSocket->Set(osSocket, addr);
theSocket->InitNonBlocking(osSocket);
theSocket->NoDelay();
theSocket->KeepAlive();
theSocket->SetSocketBufSize(sndBufSize);
theSocket->RequestEvent(EV_RE);
this->RunNormal();
return theTask;
}
示例4: Init
void MRTTransferSession::Init()
{
TCPSocket* socket = this->GetSocket();
socket->Open();
socket->InitNonBlocking(socket->GetSocketFD());
socket->NoDelay();
socket->KeepAlive();
socket->SetSocketBufSize(96L * 1024L);
this->SetTimer(120*1000);
}