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

📄 tracker.h

📁 最新的enhanced ctorrent源码
💻 H
字号:
#ifndef TRACKER_H#define TRACKER_H#include "./def.h"#include <sys/types.h>#include "./bufio.h"#ifdef WINDOWS#include <Winsock2.h>#else#include <unistd.h>#include <stdio.h>   // autoconf manual: Darwin + others prereq for stdlib.h#include <stdlib.h>  // autoconf manual: Darwin prereq for sys/socket.h#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/param.h>#endif#include <time.h>#include "btconfig.h"#define T_FREE 		0#define T_CONNECTING	1#define T_READY		2#define T_FINISHED	3class btTracker{ private:  char m_host[MAXHOSTNAMELEN];  char m_path[MAXPATHLEN];  int m_port;  char m_key[9];  char m_trackerid[PEER_ID_LEN+1];  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_completed:1;  unsigned char m_f_pause:1;  unsigned char m_f_restart:1;  unsigned char m_reserved:1;  time_t m_interval;		// 与Tracker通信的时间间隔  time_t m_default_interval;		// interval that the tracker tells us to wait  time_t m_last_timestamp;	// 最后一次成功与Tracker通信的时间  size_t m_connect_refuse_click;  size_t m_ok_click;	// tracker ok response counter  size_t m_peers_count;	// total number of peers  size_t m_seeds_count;	// total number of seeds  size_t m_prevpeers;	// number of peers previously seen  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 IsPaused() const { return m_f_pause; }  void Resume();  int IsQuitting() const { return m_f_stoped; }  void SetRestart() { m_f_restart = 1; }  void SetStoped() { Reset(15); m_f_stoped = 1; m_last_timestamp -= 15;}  int Connect();  int SendRequest();  int CheckReponse();  int IntervalCheck(fd_set* rfdp, fd_set *wfdp);  int SocketReady(fd_set *rfdp, fd_set *wfdp, int *nfds,    fd_set *rfdnextp, fd_set *wfdnextp);  size_t GetRefuseClick() const { return m_connect_refuse_click; }  size_t GetOkClick() const { return m_ok_click; }  size_t GetPeersCount() const { return m_peers_count; }  size_t GetSeedsCount() const { return m_seeds_count; }  time_t GetInterval() const { return m_default_interval; }};extern btTracker Tracker;#endif

⌨️ 快捷键说明

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