tcp 服务器

tcp 服务器由两个类组成,一个是tcp_server,另一个是它的子类tcp_threading_server。

先看代码:

  1. #include <mongols/tcp_server.hpp>
  2. #include <mongols/tcp_threading_server.hpp>
  3. int main(int,char**)
  4. {
  5. auto f=[](const std::pair<char*,size_t>& input
  6. , bool & keepalive
  7. , bool& send_to_other
  8. , mongols::tcp_server::client_t& client
  9. , mongols::tcp_server::filter_handler_function& send_to_other_filter){
  10. keepalive= KEEPALIVE_CONNECTION;
  11. send_to_other=true;
  12. return std::string(input.first,input.second);
  13. };
  14. int port=9090;
  15. const char* host="127.0.0.1";
  16. mongols::tcp_server
  17. //mongols::tcp_threading_server
  18. server(host,port);
  19. server.run(f);
  20. }

run方法需要一个handler函数,可以是lambda。这个函数给予开发者任意处置客户端及其输入和输出的自由。通过这个函数,开发者几乎可以完全控制服务器的每一次I/O。

原文: https://mongols.hi-nginx.com/doc/tcp.html