| 1493 | //////////// TServer ///////// |
| 1494 | public: |
| 1495 | TServer(IOnRequest* cb, ui16 port) |
| 1496 | : EP_(TTcp2Options::AsioServerThreads) |
| 1497 | , CB_(cb) |
| 1498 | { |
| 1499 | TNetworkAddress addr(port); |
| 1500 | |
| 1501 | for (TNetworkAddress::TIterator it = addr.Begin(); it != addr.End(); ++it) { |
| 1502 | TEndpoint ep(new NAddr::TAddrInfo(&*it)); |
| 1503 | TTcpAcceptorPtr a(new TTcpAcceptor(EA_.GetIOService())); |
| 1504 | //DBGOUT("bind:" << ep.IpToString() << ":" << ep.Port()); |
| 1505 | a->Bind(ep); |
| 1506 | a->Listen(TTcp2Options::Backlog); |
| 1507 | StartAccept(a.Get()); |
| 1508 | A_.push_back(a); |
| 1509 | } |
| 1510 | } |
| 1511 | |
| 1512 | ~TServer() override { |
| 1513 | EA_.SyncShutdown(); //cancel accepting connections |