亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbraserver.cpp

?? 實現了數字證書的制作、SSL安全通訊、加解密操作等功能
?? CPP
字號:
// UsbRaServer.cpp : implementation file
//

#include "stdafx.h"
#include "UsbKey.h"
#include "UsbRaServer.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUsbRaServer property page

IMPLEMENT_DYNCREATE(CUsbRaServer, CPropertyPage)

CUsbRaServer::CUsbRaServer() : CPropertyPage(CUsbRaServer::IDD)
{
	//{{AFX_DATA_INIT(CUsbRaServer)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_pListeSock=new CSslServerSocket(1);
	server=false;//啟動,停止

}

CUsbRaServer::~CUsbRaServer()
{
	delete m_pListeSock;
}

void CUsbRaServer::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUsbRaServer)
	DDX_Control(pDX, IDC_IPADDRESS_IP, m_server_IP);
	DDX_Control(pDX, IDC_LIST_SERVER2, m_ListC);
	DDX_Control(pDX, IDC_LIST_SERVER, m_List);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUsbRaServer, CPropertyPage)
	//{{AFX_MSG_MAP(CUsbRaServer)
	ON_BN_CLICKED(IDC_LISTEN, OnListen)
	ON_BN_CLICKED(IDC_B_GETC, OnBGetc)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUsbRaServer message handlers
void CUsbRaServer::DisplayError(_com_error &e)
{
	CString msgText;
	_bstr_t bstrSource(e.Source());
	_bstr_t bstrDescription(e.Description());
	
	msgText.Format("連接數據庫錯誤\n錯誤代碼 = %08lx\n", e.Error());
	msgText += " Msg: ";
	msgText += e.ErrorMessage();
	msgText += "\n 來源: ";
	msgText += bstrSource;
	msgText += "\n 內容: ";
	msgText += bstrDescription;
	m_List.AddMsg(msgText,M_ERROR);

}
int CUsbRaServer::GetLocalHostName(CString &sHostName)	//獲得本地計算機名稱
{
	char szHostName[256];
	int nRetCode;
	nRetCode=gethostname(szHostName,sizeof(szHostName));
	if(nRetCode!=0)
	{
		//產生錯誤
		sHostName=_T("沒有取得");
		SockMsgBox(GetLastError());
		return -1;
	}
	sHostName=szHostName;
	return 0;
}

int CUsbRaServer::GetIpAddress(const CString &sHostName, CString &sIpAddress)//獲得本地IP
{
	struct hostent FAR * lpHostEnt=gethostbyname(sHostName);
	if(lpHostEnt==NULL)
	{
		//產生錯誤
		sIpAddress=_T("");
		SockMsgBox(GetLastError());
		return -1;
	}
	//獲取IP
	LPSTR lpAddr=lpHostEnt->h_addr_list[0];
	if(lpAddr)
	{
		struct in_addr inAddr;
		memmove(&inAddr,lpAddr,4);
		//轉換為標準格式
		sIpAddress=inet_ntoa(inAddr);
		if(sIpAddress.IsEmpty())
			sIpAddress=_T("沒有取得");
	}
	return 0;
}
BOOL CUsbRaServer::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
	if (!AfxOleInit())///初始化COM庫,MFC 程序不用收回COM庫
	{
		m_List.AddMsg("初始化ADO失敗",M_ERROR);
		return FALSE;
	}
	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.
	////////////連接數據庫///////////////////////////////////////////////////////////
	CString m_strPath;
	GetModuleFileName(NULL,m_strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
	m_strPath.ReleaseBuffer ();
	int nPos;
	nPos=m_strPath.ReverseFind ('\\');
	m_strPath=m_strPath.Left (nPos);
	CString lpszFile = m_strPath + "\\ra.mdb";
	CString connect;
	connect.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;Jet OLEDB:Database Password=hpxs",lpszFile);
	HRESULT hr;
	try
	{	// Create new Connection Object
		hr = m_pConnection.CreateInstance(__uuidof( Connection ));
		if (SUCCEEDED(hr))
		{	
			try
			{	// Open Connection to database
				hr = m_pConnection->Open((_bstr_t)connect,"","",adModeUnknown);///連接數據庫
				if (SUCCEEDED(hr))
				{	// Successful connection
				//	m_IsConnected = TRUE;	// Set connection state
				//	SetToolBarShow();
				}
			}
			catch ( _com_error &e )//不要用指針,用引用,Runtime error
			{
				DisplayError(e);
				return FALSE;
			}
		}
		else throw ( "Failed to create instance of Connection Object");
	}
	catch ( _com_error &e )
	{
		DisplayError(e);
		return FALSE;
	}
	catch( char * str )
	{
		m_List.AddMsg(str,M_ERROR);
		return FALSE;
	}
	catch(...)
	{
		m_List.AddMsg( "Unhandled Exception wile connecting to database",M_ERROR);
		return FALSE;
	}
	GetDlgItem(IDC_LISTEN)->EnableWindow(true);
	///////////////////////取得IP///////////////////////////////
	CString strLocalName;
	GetLocalHostName(strLocalName);
	CString strLocalIP;
	GetIpAddress(strLocalName,strLocalIP);
	m_server_IP.SetWindowText(strLocalIP);
	m_server_IP.EnableWindow(false);

	SetDlgItemText(IDC_EDIT_PORT,"4430");

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUsbRaServer::OnListen() 
{
	// TODO: Add your control notification handler code here
	char out[100]={0};
	CString port;
	GetDlgItemText(IDC_EDIT_PORT,port);

	HRSRC hRsrc=FindResource(NULL,MAKEINTRESOURCE(IDR_SERVER_CERT),"CERT");
	DWORD lenCert = SizeofResource(NULL, hRsrc); 
	HGLOBAL hgCert=LoadResource(NULL,hRsrc);
	LPSTR lpCert=(LPSTR)LockResource(hgCert);
	
	/*私鑰*/
	hRsrc=FindResource(NULL,MAKEINTRESOURCE(IDR_SERVER_KEY),"CERT");
	DWORD lenKey = SizeofResource(NULL, hRsrc); 
	HGLOBAL hgKey=LoadResource(NULL,hRsrc);
	LPSTR lpKey=(LPSTR)LockResource(hgKey);

	server=!server;
	if(server)
	{		
		CString m_strPath;
		GetModuleFileName(NULL,m_strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
		m_strPath.ReleaseBuffer ();
		int nPos;
		nPos=m_strPath.ReverseFind ('\\');
		m_strPath=m_strPath.Left (nPos);
		CString lpszFile = m_strPath + "\\RootCert.pem";
		
		if(m_pListeSock->CreateLisenSock(atoi(port),FD_ACCEPT)==FALSE)
			return;
		if(m_pListeSock->InitCtx(SSLv23_server_method(),lpCert,
			lenCert,lpKey,lenKey,lpszFile.GetBuffer(0),NULL,1,&m_List,&m_ObSock,m_pConnection,out)==NULL)
		{
			m_List.AddMsg(out,M_ERROR);
			server=!server;
			m_pListeSock->ShutDown();
			m_pListeSock->Close();
			return;
		}
		
		GetDlgItem(IDC_LISTEN)->SetWindowText("停止服務");//綠燈
		GetDlgItem(IDC_STATIC_OFF)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_ON)->ShowWindow(SW_SHOW);
		
		m_List.AddMsg("等待客戶接入.......",M_WARING);
	}
	
	else
	{
		GetDlgItem(IDC_LISTEN)->SetWindowText("啟動服務");//紅燈
		GetDlgItem(IDC_STATIC_ON)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_STATIC_OFF)->ShowWindow(SW_SHOW);
		m_pListeSock->SSlShouDown();//停止偵聽
		CloseAllClient();
		GetDlgItem(IDC_EDIT_PORT)->EnableWindow(true);
		m_List.ResetContent();
	}	
}

void CUsbRaServer::OnBGetc() 
{
	// TODO: Add your control notification handler code here
	m_ListC.ResetContent();
	if(m_ObSock.IsEmpty()) return;
	CString ip,sport;
	UINT port;
	CSslServerSocket * p=NULL;
	for(POSITION pos = m_ObSock.GetHeadPosition(); pos != NULL; )
	{
		p=(CSslServerSocket *)m_ObSock.GetNext(pos);
		p->GetPeerName(ip,port);
		sport.Format("%s:%d",ip,port);
		m_ListC.AddMsg(sport);
	}
}

void CUsbRaServer::CloseAllClient()
{
	if(m_ObSock.IsEmpty()) return;
	CSslServerSocket * p=NULL;
	for(POSITION pos = m_ObSock.GetHeadPosition(); pos != NULL; )
	{
		p=(CSslServerSocket *)m_ObSock.GetNext(pos);
		p->SSlShouDown();
		delete p;//刪除套接字
		p=NULL;
	}
	m_ObSock.RemoveAll(); 
}

void CUsbRaServer::OnDestroy() 
{
	CPropertyPage::OnDestroy();
	// TODO: Add your message handler code here
	if(m_pConnection->State)
    {
		m_pConnection->Close();
		m_pConnection= NULL; 
	}
	m_pListeSock->SSlShouDown();
	CloseAllClient();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费观看av| wwwwxxxxx欧美| 中文字幕一区二区三区在线观看| 国产一区二区网址| 日本一区二区在线不卡| 丁香六月久久综合狠狠色| 中文字幕日韩av资源站| 在线精品亚洲一区二区不卡| 亚洲国产精品一区二区久久| 91麻豆精品国产91久久久久 | 国产精品久久久久毛片软件| 国产成人鲁色资源国产91色综| 国产精品日产欧美久久久久| 99视频一区二区| 亚洲成人一区在线| 久久综合色8888| 99久久精品免费看| 丝袜美腿高跟呻吟高潮一区| 日韩一区二区三区观看| 国产麻豆9l精品三级站| 国产精品欧美精品| 欧美日韩在线播| 国产主播一区二区三区| 日韩理论电影院| 在线成人高清不卡| 成人午夜免费电影| 午夜av区久久| 亚洲国产成人自拍| 制服丝袜亚洲精品中文字幕| 国产一区二区影院| 亚洲成人高清在线| 国产欧美日韩卡一| 这里只有精品免费| 99精品久久只有精品| 首页国产欧美久久| 亚洲欧洲日产国产综合网| 欧美日韩夫妻久久| 成人爽a毛片一区二区免费| 亚洲精品日产精品乱码不卡| 日韩一区二区三区免费看| 91在线国产福利| 秋霞电影网一区二区| 中文字幕中文乱码欧美一区二区| 欧美日韩国产123区| 99久久亚洲一区二区三区青草| 欧美aaa在线| 亚洲丝袜精品丝袜在线| 精品国产乱码久久久久久蜜臀| 91婷婷韩国欧美一区二区| 精品一区二区三区av| 性久久久久久久| 国产精品高潮呻吟| 久久精品在线观看| 欧美一区二区大片| 在线观看欧美精品| 成人高清视频免费观看| 久久不见久久见免费视频7| 一级女性全黄久久生活片免费| 中文字幕成人网| 久久亚洲免费视频| 777午夜精品免费视频| 一本色道久久加勒比精品| 成人免费高清视频| 国产精品综合二区| 国产一区二区影院| 国产在线日韩欧美| 久久66热偷产精品| 麻豆视频观看网址久久| 日韩中文字幕区一区有砖一区| 亚洲激情自拍偷拍| 亚洲欧美另类久久久精品2019| 国产精品美女一区二区| 国产亚洲婷婷免费| 国产亚洲福利社区一区| 久久伊人中文字幕| 久久影院午夜论| 久久精品一级爱片| 国产欧美va欧美不卡在线| xfplay精品久久| 久久―日本道色综合久久| 久久这里只有精品视频网| 久久先锋影音av| 国产亚洲精品bt天堂精选| 中文字幕免费一区| 欧美精品 日韩| 91精品国产福利| 精品黑人一区二区三区久久| 精品国产乱码久久久久久免费| 久久久久久夜精品精品免费| 国产亲近乱来精品视频 | 国产精品狼人久久影院观看方式| 国产亚洲成av人在线观看导航| 国产欧美日韩另类一区| 一区在线观看免费| 午夜精品久久久| 理论电影国产精品| 国产成人在线视频网站| 成人av片在线观看| 欧美自拍丝袜亚洲| 91精品国产综合久久国产大片| 日韩欧美国产系列| 久久亚洲一区二区三区四区| 欧美激情一区在线| 亚洲激情六月丁香| 免费看欧美女人艹b| 国产v日产∨综合v精品视频| 97久久久精品综合88久久| 欧美嫩在线观看| 久久久国产精品麻豆| 亚洲精品视频自拍| 麻豆视频一区二区| 99视频一区二区| 欧美一区二区三区四区久久| 久久嫩草精品久久久久| 一区二区在线观看免费| 美女视频免费一区| 99久久777色| 欧美一二三区在线观看| 中文字幕+乱码+中文字幕一区| 亚洲一区二区在线播放相泽| 国产酒店精品激情| 欧美在线视频日韩| 国产欧美一区二区精品忘忧草| 亚洲日本一区二区| 另类成人小视频在线| 97精品电影院| 精品电影一区二区三区| 亚洲码国产岛国毛片在线| 九九久久精品视频| 在线国产电影不卡| 亚洲国产精品成人综合| 免费成人你懂的| 色婷婷狠狠综合| 久久久久亚洲蜜桃| 午夜久久久影院| 91麻豆国产精品久久| www欧美成人18+| 水蜜桃久久夜色精品一区的特点 | 国产精品女同一区二区三区| 午夜精品久久久久久久| 91视频免费观看| 久久久久久夜精品精品免费| 蜜臀av国产精品久久久久| 欧美亚日韩国产aⅴ精品中极品| 久久久精品天堂| 青青草伊人久久| 欧美日韩色综合| 亚洲精品伦理在线| 成人av动漫在线| 国产午夜精品一区二区三区四区| 美女在线观看视频一区二区| 欧美亚洲国产一区二区三区va| 中文字幕二三区不卡| 国产精品资源在线| 日韩精品一区二区三区中文不卡 | 国产毛片一区二区| 91精品久久久久久久99蜜桃| 亚洲精品国产一区二区精华液| 成人免费av资源| 精品福利一二区| 国产原创一区二区三区| 久久免费午夜影院| 国产成人精品亚洲777人妖| 精品盗摄一区二区三区| 国产真实精品久久二三区| 精品99999| 国产盗摄女厕一区二区三区| 久久九九久久九九| 国产不卡免费视频| 国产视频一区在线观看| 国产成人aaaa| 中文字幕精品一区二区精品绿巨人| 国产精品亚洲第一区在线暖暖韩国 | 一区二区三区在线观看网站| 色噜噜狠狠一区二区三区果冻| 中文字幕在线一区| 色呦呦国产精品| 亚洲第四色夜色| 欧美刺激脚交jootjob| 国产资源精品在线观看| 欧美韩国日本综合| 99国产精品久| 亚洲国产sm捆绑调教视频| 欧美老人xxxx18| 极品少妇xxxx偷拍精品少妇| 国产午夜亚洲精品理论片色戒| 成人黄色一级视频| 亚洲一区二区在线播放相泽| 欧美精品丝袜久久久中文字幕| 麻豆精品在线看| 中文字幕精品在线不卡| 欧美怡红院视频| 免费观看成人av| 国产精品丝袜一区| 在线看不卡av| 久久99九九99精品| 亚洲欧洲精品一区二区精品久久久 | 午夜精品久久久久久久久| 精品国产伦一区二区三区观看体验| 国产高清亚洲一区|