本文整理汇总了C++中Transport::eventIteration方法的典型用法代码示例。如果您正苦于以下问题:C++ Transport::eventIteration方法的具体用法?C++ Transport::eventIteration怎么用?C++ Transport::eventIteration使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transport
的用法示例。
在下文中一共展示了Transport::eventIteration方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testReadMaliciousDataInfinitLoop
void TCPCONNECTIONTF::testReadMaliciousDataInfinitLoop() {
ANET_LOG(DEBUG, "Begin testReadMaliciousDataInfinitLoop");
int64_t now = TimeUtil::getTime();
Transport tranClient;
Transport tranServer;
const char sepc[] = "tcp:localhost:12346";
ConnPacketFactory factory;
DefaultPacketStreamer defaultStreamer(&factory);
DefaultPacketHandler defaultHandler;
TCPServerAdapter adapter;
MaliciousStreamer maliciousStreamer(&factory);
IOComponent *listener =
tranServer.listen(sepc, &defaultStreamer, &adapter);
CPPUNIT_ASSERT(listener);
ANET_LOG(SPAM,"After tranServer->listen()");
tranServer.eventIteration(now);
ANET_LOG(SPAM,"After tranServer->eventIteration(now)");
//create a connection
Connection *conn = tranClient.connect(sepc, &maliciousStreamer);
ANET_LOG(SPAM,"After tranClient->connect(spec, _streamer, false)");
CPPUNIT_ASSERT(conn);
tranClient.eventIteration(now);
ANET_LOG(SPAM,"After tranClient->eventIteration(now)");
//accept the connection
tranServer.eventIteration(now);
ANET_LOG(SPAM,"After tranServer->eventIteration(now)");
conn->postPacket(new ConnPacket(11), &defaultHandler, NULL);
maliciousStreamer._maliciousLen = 0x80000000 + 10;
ANET_LOG(DEBUG,"before conn->writeData()");
conn->writeData();
ANET_LOG(DEBUG,"before connAcc->readData()");
tranServer.eventIteration(now);
ANET_LOG(DEBUG,"after connAcc->readData()");
tranClient.eventIteration(now);
CPPUNIT_ASSERT(conn->isClosed());
ANET_LOG(DEBUG,"after tranClient.eventIteration(now)");
conn->subRef();
listener->subRef();
ANET_LOG(DEBUG, "End testReadMaliciousDataInfinitLoop");
}
示例2: testMemLeak
/**
* test Server and Client memory leak
* test whether packets are deleted when connection closed
*/
void TCPCONNECTIONTF::testMemLeak() {
char spec[] = "tcp:localhost:13147";
int64_t now = TimeUtil::getTime();
Transport *tranServer = new Transport;
Transport *tranClient = new Transport;
ConnServerAdapter *adapter = new ConnServerAdapter;
//add listener to tranServer
IOComponent *listener = tranServer->listen(spec, _streamer, adapter);
CPPUNIT_ASSERT(listener);
tranServer->eventIteration(now);
//create a connection
Connection *conn = tranClient->connect(spec, _streamer, false);
CPPUNIT_ASSERT(conn);
tranClient->eventIteration(now);
//accept the connection
tranServer->eventIteration(now);
// client send two packets
_conn->postPacket(new ConnPacket, _handler, NULL, true);
_conn->postPacket(new ConnPacket, _handler, NULL, true);
tranClient->eventIteration(now);
//server accept two packets
tranServer->eventIteration(now);
IOComponent *ioc = tranServer->_iocListTail;
Connection *tmpConn = ((TCPComponent *)ioc)->_connection;
//client close the connection
_conn->close();
tranClient->eventIteration(now);
tranServer->eventIteration(now);
CPPUNIT_ASSERT_EQUAL((size_t)0, tmpConn->_outputQueue.size());
delete adapter;
delete tranClient;
delete tranServer;
listener->subRef();
conn->subRef();
}