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

📄 chat.h

📁 Unix下用C语言进行网络编程的范例
💻 H
字号:
/* File : chat.h  */

/* Define constant */
   const int MAX_USRS = 10;
   const int QUE_LEN = 10;
   const  int MAX_PACKET_LEN = 1000;
   const  int MAX_NAME_LEN = 100;

struct Message 
{
   long sn;
   int connection;
   char* message;
};

/****************************************************
class name : MessageQue
Function: A queue for message
******************************************************/
class MessageQue
{
   long lastSN;
   int queLen;  // The length of the queue
   vector<Message*> *queue;
   MyMutex* lock;
public:
   MessageQue(int len);
   ~MessageQue();
   
   int Add(int conn, char* m);
   int Get(int conn, long* maxsn, char* m);
   long GetSN() {return lastSN;}
     void SetSN(int sn) { lastSN = sn;}
     int GetQueLen() { return queLen;}
     void SetQueLen(int l) { queLen = l;}
};

/****************************************************
class name : ChatServer
Function: chat with multiple users
******************************************************/
class ChatServer : public TcpServThr
{
protected:
   int max_usrs;
   int queLen;
   MessageQue *msg;
   MyCondition *con;
public:
   ChatServer();
   ChatServer(int port, char *hostname = NULL); 
   ChatServer(int port, int max_conn, int maxusers, int len, char *hostname = NULL);
   virtual ~ChatServer();
   
   void SetMaxUser(int num) {max_usrs = num;}
   int GetMaxUser() { return max_usrs;}
   void DealRecv(MyThread* thread);
   void DealSend(MyThread* thread);
};

⌨️ 快捷键说明

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