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