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 + -
显示快捷键?