Пример #1
0
 void clientConnectionCallback(const TcpConnectionPtr& conn)
 {
     cout << conn->peerAddress().ipPort() << " -> " << conn->localAddress().ipPort()
         << " is " << (conn->connected() ? "UP" : "DOWN") << "\n";
     if (conn->connected())
     {
         clientConnection = conn;
         conn->setNoDelay(true);
     }
     else
     {
         clientConnection.reset();
     }
 }
Пример #2
0
TcpServer::~TcpServer()
{
  _loop->assertInLoopThread();

  for (ConnectionMap::iterator it(_connections.begin());
      it != _connections.end(); ++it)
  {
    TcpConnectionPtr conn = it->second;
    it->second.reset();
    conn->getLoop()->runInLoop(
      std::bind(&TcpConnection::connectDestroyed, conn));
    conn.reset();
  }
}
Пример #3
0
TcpServer::~TcpServer()
{
    m_loop->assertInLoopThread();
    LOG_TRACE << "TcpServer::~TcpServer [" << m_name << "] destructing";

    for (ConnectionMap::iterator it(connections_.begin());
        it != connections_.end(); ++it)
    {
        TcpConnectionPtr conn = it->second;
        it->second.reset();
        conn->getLoop()->runInLoop(
            boost::bind(&TcpConnection::connectDestroyed, conn));
        conn.reset();
    }
}
Пример #4
0
    TcpServer::~TcpServer()
    {
        loop_->assertInLoopThread();
        LOG_PRINT(LogType_Info, "TcpServer::~TcpServer [%s] destructing", name_.c_str());

        for(ConnectionMap::iterator it(connections_.begin());
                it != connections_.end(); ++it)
        {
            TcpConnectionPtr conn = it->second;
            it->second.reset();
            conn->getLoop()->runInLoop(
                std::bind(&TcpConnection::connectDestroyed, conn));
            conn.reset();
        }
    }
Пример #5
0
int main()
{
	EventLoop baseLoop;
	InetAddress address("127.0.0.1", 8888);
	std::shared_ptr<Connector> connector(new Connector(&baseLoop, address));
	
	TcpConnectionPtr tcpConnPtr;

	connector->setNewConnectionCallback([&](int sockfd) {
						InetAddress peerAddr(sockets::getPeerAddr(sockfd));
						tcpConnPtr.reset(new TcpConnection(&baseLoop, "connection one", 
								sockfd, peerAddr, address));
						tcpConnPtr->setConnectionCallback(defaultConnectionCallback);
						tcpConnPtr->setMessageCallback(defaultMessageCallback);
						tcpConnPtr->send("what is your name?");
			});

	connector->start();
	
	baseLoop.loop();

	return 0;
}