⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.hpp

📁 是一个多线程虚函数实现的c++版的socket程序
💻 HPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -