server.hpp

来自「是一个多线程虚函数实现的c++版的socket程序」· HPP 代码 · 共 52 行

HPP
52
字号
#ifndef _SERVER_HPP_#define _SERVER_HPP_#include <set>#include <sys/socket.h>#include <netinet/in.h>#include <pthread.h>using std::set;class TcpServer {public:  enum ErrorCode {    ERROR_CREATING_SOCKET, ERROR_BINDING_ADDRESS, ERROR_LISTENING  };  struct ThreadData {    pthread_t thread;    sockaddr_in client;      };  TcpServer(const unsigned short port, const unsigned int thread_count) throw (ErrorCode);  virtual ~TcpServer();  void start() throw (ErrorCode);  void stop();  //void set_thread_count(const unsigned int thread_count) throw (ErrorCode);  //unsigned int thread_count();protected:  virtual void serve(const int socket, const sockaddr_in &client) = 0;private:  TcpServer(TcpServer &) {}  TcpServer &operator =(TcpServer &) {}  unsigned int m_thread_count;  bool m_stop;  int m_listen_socket;  sockaddr_in m_listen_addr;  typedef set<pthread_t> ThreadSet;  ThreadSet m_threads;  void worker_entry();  static void *worker_wrapper(void *param);  pthread_mutex_t m_accept_lock;};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?