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

📄 tracker.h

📁 linux下最常用的bt下载软件的最新源代码
💻 H
字号:
#ifndef TRACKER_H#define TRACKER_H#include <sys/types.h>#include "./def.h"#include "./bufio.h"#ifdef WINDOWS#include <Winsock2.h>#else#include <unistd.h>#include <sys/time.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/param.h>#endif#define T_FREE 		0#define T_CONNECTING	1#define T_READY		2class btTracker{ private:  char m_host[MAXHOSTNAMELEN];  char m_path[MAXPATHLEN];  int m_port;  struct sockaddr_in m_sin;  unsigned char m_status:2;  unsigned char m_f_started:1;  unsigned char m_f_stoped:1;  unsigned char m_f_pause:1;  unsigned char m_f_reserved:3;  time_t m_interval;		// 与Tracker通信的时间间隔  time_t m_last_timestamp;	// 最后一次成功与Tracker通信的时间  size_t m_connect_refuse_click;  SOCKET m_sock;  BufIo m_reponse_buffer;    int _IPsin(char *h, int p, struct sockaddr_in *psin);  int _s2sin(char *h,int p,struct sockaddr_in *psin);  int _UpdatePeerList(char *buf,size_t bufsiz); public:  btTracker();  ~btTracker();  int Initial();  void Reset(time_t new_interval);  unsigned char GetStatus() { return m_status;}  void SetStatus(unsigned char s) { m_status = s; }  SOCKET GetSocket() { return m_sock; }  void SetPause() { m_f_pause = 1; }  void ClearPause() { m_f_pause = 0; }  int Connect();  int SendRequest();  int CheckReponse();  int IntervalCheck(const time_t *pnow,fd_set* rfdp, fd_set *wfdp);  int SocketReady(fd_set *rfdp, fd_set *wfdp, int *nfds);  size_t GetRefuseClick() const { return m_connect_refuse_click; }};extern btTracker Tracker;#endif

⌨️ 快捷键说明

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