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

📄 portproxy.h

📁 远程控制系统,可以实现局域网内进行远程控制计算机,很方便,并且是学习用的非常好的资料.
💻 H
字号:
// portproxy.h: interface for the CPortProxy class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PORTPROXY_H__7C847D98_2DBE_42AA_93BB_26738FE3B283__INCLUDED_)
#define AFX_PORTPROXY_H__7C847D98_2DBE_42AA_93BB_26738FE3B283__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define PORT_MAX_CONNECT 20

#define WM_ADDPROXY WM_USER + 1

class CAddProxy : public CDialogImpl<CAddProxy>
{
public:
	enum { IDD = IDD_ADDPROXY };

	BEGIN_MSG_MAP(CAddProxy)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		MESSAGE_HANDLER(WM_CLOSE, OnClose)
		COMMAND_ID_HANDLER(IDOK, OnAddProxyBtn)
		COMMAND_ID_HANDLER(IDCLOSE, OnHideDlgBtn)
	END_MSG_MAP()

// Handler prototypes (uncomment arguments if needed):
//	LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
//	LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
//	LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
	{
		SetDlgItemText(IDC_PROXYADDR, "127.0.0.1");
		return TRUE;
	}
	LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
	{
		ShowWindow(SW_HIDE);
		return TRUE;
	}
	LRESULT OnAddProxyBtn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
	{
		::SendMessage(GetParent(), WM_ADDPROXY, 0, 0);
		return TRUE;
	}
	LRESULT OnHideDlgBtn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
	{
		ShowWindow(SW_HIDE);
		return TRUE;
	}
};

class CPortProxy : public CDialogImpl<CPortProxy>
{
public:
	enum { IDD = IDD_PORTPROXY };

	CPortProxy();
	virtual ~CPortProxy();

	BEGIN_MSG_MAP(CPortProxy)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		MESSAGE_HANDLER(WM_SIZE, OnSize)
		MESSAGE_HANDLER(WM_SOCKET, OnSocket)
		NOTIFY_ID_HANDLER(IDC_PROXYLIST, OnProxyList)
		COMMAND_ID_HANDLER(IDM_ADDPROXY, OnAddProxy)
	ALT_MSG_MAP(1)
		COMMAND_ID_HANDLER(IDOK, OnAddProxyBtn)
	END_MSG_MAP()

// Handler prototypes (uncomment arguments if needed):
//	LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
//	LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
//	LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnSocket(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnProxyList(int wParam, LPNMHDR pNMHDR, BOOL& /*bHandled*/);
	LRESULT OnAddProxy(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
	LRESULT OnAddProxyBtn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

private:
	typedef struct _PROXY_LIST
	{
		USHORT nLocalPort;
		DWORD dwTargetHost;
		USHORT nTargetPort;
		SOCKET sListen;
		ULONG nTotal;
		ULONG nSend;
		ULONG nRecv;
		ULONG nSendBytes;
		ULONG nRecvBytes;
		HANDLE hWorkThread;
		HANDLE hCtrlEvent1;
		HANDLE hCtrlEvent2;
		SOCKET local_sock;
		SOCKET remote_sock;
		struct _PROXY_LIST *pNext;
	} PROXY_LIST, *PPROXY_LIST;

	typedef struct _OPEN_REMOTE_PORT
	{
		HANDLE hEvent;
		SOCKET s;
	} OPEN_REMOTE_PORT, *POPEN_REMOTE_PORT;

	REQUEST_CONNECT rc;
	bool connwait;
	PWND_INIT_PARAM pwip;
	CListViewCtrl m_hProxyList;
	PPROXY_LIST ppl;
	CAddProxy m_hAddProxyDlg;

	BOOL SockProxyStart(USHORT ListenPort, char *RemoteHost, USHORT RemotePort);
	static DWORD WINAPI SockProxyThread(LPVOID lpParam);
	SOCKET OpenLocalPort(USHORT nPort);
	SOCKET OpenRemotePort(char *lpHost, USHORT nPort);
	static void OpenPortSuccess(SOCKET s, LPVOID param = NULL);
};

#endif // !defined(AFX_PORTPROXY_H__7C847D98_2DBE_42AA_93BB_26738FE3B283__INCLUDED_)

⌨️ 快捷键说明

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