ClientStructDefine.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:2k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. #pragma once
  20. #include "FreeList.h"
  21. #include "PushList.h"
  22. #include "IntervalArray.h"
  23. #include "MediaArray.h"
  24. #include ".externalTE_Socket.h"
  25. #include ".externalRand.h"
  26. #include ".externalmd5.h"
  27. #include "CriticalSection.h"
  28. #include "TransferCalculator.h"
  29. // 操作系统版本
  30. enum OS_Version {OS_UNKNOWN, OS_WIN95, OS_WIN98, OS_WINME, 
  31.                 OS_WINNT40, OS_WIN2000, OS_WINXP, OS_WIN2003};
  32. // 配置信息
  33. class ConfigData {
  34. public:
  35. UINT GetSum() { return OUTGOING_NUM+INCOMING_NUM+OUT_4FREE_NUM+IN_4FREE_NUM;};
  36. UINT GetIncoming() { return INCOMING_NUM+IN_4FREE_NUM;};
  37. UINT GetOutgoing() { return OUTGOING_NUM+OUT_4FREE_NUM;};
  38. float COMMUNICATOR_VERSION; // 版本
  39. float ACCEPT_VERSION; // 可以接受的最低版本
  40. float ADD_PROGNAME_VERSION; // 增加了节目名的版本
  41. float ADD_PROGTIME_VERSION; // 增加了节目时间的版本
  42. UINT8 OUTGOING_NUM; // 最大连出连接
  43. UINT8 INCOMING_NUM; // 最大连入连接
  44. UINT8 OUT_4FREE_NUM; // 为他人做贡献的连出连接
  45. UINT8 IN_4FREE_NUM; // 为他人做贡献的连入连接
  46. string post_log_url; // 接收post log的页面url
  47. string module_base; // layer1.dll所在的目录
  48. int allow_post; // 是否允许post 1 允许, 0 不允许
  49. };
  50. struct ConnectingPeer : public PeerInfoWithAddr {
  51. // 连接中的SOCKET
  52. SOCKET sock;
  53. // 是否连入连接
  54. bool isIncoming;
  55. // 是否free连接
  56. bool isForFree;
  57. // 双方当前资源是否相同
  58. bool isSameRes;
  59. // 是否被动连接
  60. bool isPassive;
  61. // 是否内网连接
  62. bool isSameLan;
  63. // 开始连接的时间
  64. DWORD connectTime;
  65. };
  66. typedef list<PeerInfoWithAddr>::iterator PeerAddrIt;
  67. typedef list<ConnectingPeer>::iterator CPeerIt;