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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbraserver.cpp

?? 實現(xiàn)了數(shù)字證書的制作、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("連接數(shù)據(jù)庫錯誤\n錯誤代碼 = %08lx\n", e.Error());
	msgText += " Msg: ";
	msgText += e.ErrorMessage();
	msgText += "\n 來源: ";
	msgText += bstrSource;
	msgText += "\n 內(nèi)容: ";
	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)
	{
		//產(chǎn)生錯誤
		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)
	{
		//產(chǎn)生錯誤
		sIpAddress=_T("");
		SockMsgBox(GetLastError());
		return -1;
	}
	//獲取IP
	LPSTR lpAddr=lpHostEnt->h_addr_list[0];
	if(lpAddr)
	{
		struct in_addr inAddr;
		memmove(&inAddr,lpAddr,4);
		//轉(zhuǎn)換為標準格式
		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.
	////////////連接數(shù)據(jù)庫///////////////////////////////////////////////////////////
	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);///連接數(shù)據(jù)庫
				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一区二区三区免费野_久草精品视频
精品一区二区三区视频| 91网站在线观看视频| 豆国产96在线|亚洲| 欧美性猛片aaaaaaa做受| 欧美精品一区二区三区在线播放 | 亚洲狠狠丁香婷婷综合久久久| 亚洲大片免费看| 91在线视频观看| 国产午夜精品一区二区三区视频| 天天做天天摸天天爽国产一区| 成人午夜电影久久影院| 精品精品国产高清a毛片牛牛 | 中文字幕欧美区| 麻豆精品蜜桃视频网站| 欧美丰满少妇xxxxx高潮对白| 成人免费在线视频观看| 丰满放荡岳乱妇91ww| 精品国产sm最大网站免费看| 视频一区二区欧美| 欧美精品久久99久久在免费线 | 成人av中文字幕| 久久日韩粉嫩一区二区三区| 免费精品视频在线| 欧美一级欧美三级| 五月激情综合网| 9191国产精品| 日本成人超碰在线观看| 91精品国产综合久久精品 | 在线观看视频一区| 亚洲另类在线一区| 色久优优欧美色久优优| 亚洲精选在线视频| 在线观看日韩毛片| 日韩精品一级二级| 欧美一级一级性生活免费录像| 秋霞成人午夜伦在线观看| 91精品久久久久久久91蜜桃| 日韩和的一区二区| 精品三级在线看| 国产精品一区二区久久不卡 | 亚洲免费在线观看| 欧美中文字幕亚洲一区二区va在线 | 日本大香伊一区二区三区| 国产精品国产三级国产普通话99| 不卡一区在线观看| 一区二区三国产精华液| 欧美挠脚心视频网站| 蜜桃久久久久久久| 国产日韩精品一区二区三区在线| 成人精品视频.| 一区二区三区免费看视频| 欧美福利视频一区| 韩国成人福利片在线播放| 国产精品午夜在线观看| 91久久香蕉国产日韩欧美9色| 午夜精品免费在线| 久久久久九九视频| 91蜜桃视频在线| 免费看日韩a级影片| 欧美激情中文字幕一区二区| 欧美综合久久久| 久久99久久99小草精品免视看| 欧美极品xxx| 欧美乱熟臀69xxxxxx| 国产美女视频91| 一区二区三区在线视频观看 | 欧美三级午夜理伦三级中视频| 日韩国产成人精品| 久久久噜噜噜久久人人看 | 亚洲欧美视频在线观看视频| 欧美另类变人与禽xxxxx| 国产成人精品三级麻豆| 亚洲国产另类av| 国产欧美视频一区二区三区| 欧美日韩亚洲另类| 国产999精品久久久久久绿帽| 午夜精品一区二区三区免费视频| 亚洲自拍欧美精品| 亚洲国产精品黑人久久久| 欧美色男人天堂| 99久久综合色| 经典三级视频一区| 亚洲成人免费在线观看| 国产精品久久久久久亚洲毛片| 欧美一级专区免费大片| 在线免费不卡视频| 成人av电影在线播放| 久久精品噜噜噜成人av农村| 一卡二卡三卡日韩欧美| 国产精品不卡一区二区三区| 精品人在线二区三区| 欧美肥妇bbw| 在线观看亚洲精品| 波多野结衣欧美| 国产精品77777| 美女视频网站久久| 日韩精品欧美精品| 亚洲成人免费看| 有码一区二区三区| 最新热久久免费视频| 国产偷国产偷精品高清尤物 | 欧美日韩一区高清| 91国偷自产一区二区三区观看| 成人涩涩免费视频| 成人一区二区三区在线观看| 国产自产视频一区二区三区| 免费成人美女在线观看.| 天天综合天天做天天综合| 亚洲亚洲人成综合网络| 亚洲图片欧美激情| 最新国产成人在线观看| 中文字幕日韩精品一区| 一区二区中文视频| 亚洲欧美一区二区三区孕妇| 亚洲视频一区在线| 亚洲欧美国产高清| 亚洲最色的网站| 亚洲电影一级黄| 日本在线播放一区二区三区| 婷婷一区二区三区| 久久精品国内一区二区三区| 久久精品国产精品青草| 国产一区二区在线电影| 国产精品一二一区| 91在线视频免费观看| 91国偷自产一区二区开放时间 | a在线欧美一区| 91女厕偷拍女厕偷拍高清| 欧洲亚洲精品在线| 欧美精品色综合| 精品久久免费看| 欧美激情一区三区| 伊人夜夜躁av伊人久久| 午夜欧美电影在线观看| 久久99国产精品免费| 成人网页在线观看| 色播五月激情综合网| 欧美一区二区三区免费在线看 | 欧美日韩免费高清一区色橹橹 | 久久久久99精品国产片| 中文字幕一区二区三区视频| 亚洲综合色视频| 蜜桃一区二区三区在线| 国产999精品久久| 欧美撒尿777hd撒尿| 欧美videofree性高清杂交| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品国产精品国产专区不蜜 | 亚洲成人免费看| 国内精品视频666| 91丨九色丨尤物| 欧美一区二区三区爱爱| 国产精品久久久久久久久免费丝袜| 一区二区三区日韩精品视频| 免费人成在线不卡| 91在线一区二区三区| 欧美一区日本一区韩国一区| 亚洲国产精品ⅴa在线观看| 亚洲自拍偷拍欧美| 国产乱码精品一区二区三区忘忧草| 色综合久久久网| 久久日韩粉嫩一区二区三区| 亚洲午夜久久久久久久久电影院| 国产精品乡下勾搭老头1| 欧美伊人久久久久久午夜久久久久| 国产欧美一区二区三区在线看蜜臀| 国产精品嫩草影院com| 亚洲网友自拍偷拍| 欧美人伦禁忌dvd放荡欲情| 国产精品色眯眯| 六月丁香综合在线视频| 色婷婷久久久亚洲一区二区三区| 久久久蜜臀国产一区二区| 亚洲va欧美va国产va天堂影院| 国产成人精品三级麻豆| 欧美福利视频一区| 亚洲综合色自拍一区| 大尺度一区二区| 精品国产百合女同互慰| 日本在线不卡视频| 欧美三级三级三级爽爽爽| 亚洲欧美视频在线观看| 成人av在线资源| 国产日产欧美一区| 国产乱子轮精品视频| 日韩欧美国产1| 麻豆精品在线看| 日韩一级大片在线| 日本午夜一区二区| 欧美酷刑日本凌虐凌虐| 亚洲国产另类av| 欧美专区在线观看一区| 亚洲欧美激情在线| 99视频超级精品| 日韩美女视频一区二区| 波多野结衣视频一区| 综合av第一页| 色偷偷88欧美精品久久久| 亚洲男女毛片无遮挡| 91成人免费在线|