TestNetDlg.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 "afxwin.h"
  21. #include <Winsock2.h>
  22. // CTestNetDlg dialog
  23. enum CONNECT_RESULT {CR_ERROR, CR_CONNECTED, CR_WOULDBLOCK};
  24. class CTestNetDlg : public CDialog
  25. {
  26. DECLARE_DYNAMIC(CTestNetDlg)
  27. public:
  28. CTestNetDlg(CWnd* pParent = NULL);   // standard constructor
  29. virtual ~CTestNetDlg();
  30. // Dialog Data
  31. enum { IDD = IDD_TEST_NET };
  32. public:
  33. //得到当前的SpAddress,在实例化之前调
  34. void GetAddr(CString astrSPAddress);
  35. //与网络相关的函数
  36. private:
  37. //得到IP地址
  38. SOCKADDR_IN GetCurAddrin(CString astrIPAddr);
  39. //初始化WinSock
  40. int InitSock();
  41. //反初始化WinSock
  42. void UnInitSock();
  43. //开始连接
  44. CONNECT_RESULT Connecting(SOCKET& asocket, CString astrIPAddr);
  45. //断开连接
  46. void Disconnect(SOCKET& asocket);
  47. //测试网络
  48. BOOL TestNet(CString astrCurIP);
  49. //线程函数
  50. static void WINAPI ConnectProc(CTestNetDlg* apTestNetDlg);
  51. //得到多线结果
  52. void GetResult();
  53. //显示多线结果
  54. void DisplayResult();
  55. private:
  56. struct STRU_CONNECT
  57. {
  58. BOOL mbResult; //连接的结果
  59. SOCKET msocket; //连接的套接字
  60. CString mstrIP; //连接的IP
  61. };
  62. CStringArray mStrAryIPAry; //测试的IP
  63. CComboBox mcomboxIPAry; //测试IP的ComboBox
  64. CString mstrState; // 测试的状态
  65. STRU_CONNECT* mpstruConnect;
  66. CRITICAL_SECTION moCriticalSection; //临界区
  67. int minum; //使用的序号
  68. protected:
  69. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  70. DECLARE_MESSAGE_MAP()
  71. public:
  72. virtual BOOL OnInitDialog();
  73. afx_msg void OnBnClickedTest();
  74. afx_msg void OnBnClickedBtnTestAll();
  75. };