1e54e5389SShuo Chen#include "TcpServer.h" 2e54e5389SShuo Chen#include "EventLoop.h" 3e54e5389SShuo Chen#include "InetAddress.h" 4e54e5389SShuo Chen#include <stdio.h> 5e54e5389SShuo Chen 6e54e5389SShuo Chenvoid onConnection(const muduo::TcpConnectionPtr& conn) 7e54e5389SShuo Chen{ 8e54e5389SShuo Chen if (conn->connected()) 9e54e5389SShuo Chen { 10e54e5389SShuo Chen printf("onConnection(): new connection [%s] from %s\n", 11e54e5389SShuo Chen conn->name().c_str(), 12e54e5389SShuo Chen conn->peerAddress().toHostPort().c_str()); 13e54e5389SShuo Chen } 14e54e5389SShuo Chen else 15e54e5389SShuo Chen { 16e54e5389SShuo Chen printf("onConnection(): connection [%s] is down\n", 17e54e5389SShuo Chen conn->name().c_str()); 18e54e5389SShuo Chen } 19e54e5389SShuo Chen} 20e54e5389SShuo Chen 21e54e5389SShuo Chenvoid onMessage(const muduo::TcpConnectionPtr& conn, 22e54e5389SShuo Chen const char* data, 23e54e5389SShuo Chen ssize_t len) 24e54e5389SShuo Chen{ 25e54e5389SShuo Chen printf("onMessage(): received %zd bytes from connection [%s]\n", 26e54e5389SShuo Chen len, conn->name().c_str()); 27e54e5389SShuo Chen} 28e54e5389SShuo Chen 29e54e5389SShuo Chenint main() 30e54e5389SShuo Chen{ 31e54e5389SShuo Chen printf("main(): pid = %d\n", getpid()); 32e54e5389SShuo Chen 33e54e5389SShuo Chen muduo::InetAddress listenAddr(9981); 34e54e5389SShuo Chen muduo::EventLoop loop; 35e54e5389SShuo Chen 36e54e5389SShuo Chen muduo::TcpServer server(&loop, listenAddr); 37e54e5389SShuo Chen server.setConnectionCallback(onConnection); 38e54e5389SShuo Chen server.setMessageCallback(onMessage); 39e54e5389SShuo Chen server.start(); 40e54e5389SShuo Chen 41e54e5389SShuo Chen loop.loop(); 42e54e5389SShuo Chen} 43