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

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

?? ctsserverdlg.cpp

?? 碼頭手持機項目,用于統計集裝箱,輪船的情況,手持機采用S3C2440處理器,數據傳輸采用2.4G無線,上位機用VC編寫
?? CPP
字號:
// CTSServerDlg.cpp : implementation file
//
#include <comutil.h>
#include "stdafx.h"
#include "CTSServer.h"
#include "CTSServerDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
#define ServerPort (u_short)4660
/////////////////////////////////////////////////////////////////////////////

extern CCTSServerApp theApp; 
//CString convert(BSTR b) 
//{
//    CString s;
//    if(b == NULL)
//        return s; // empty for NULL BSTR 
//    #ifdef UNICODE 
//        s = b;
//    #else
//        LPSTR p = s.GetBuffer(SysStringLen(b) + 1);
//    ::WideCharToMultiByte(CP_ACP, // ANSI Code Page
//         0, // no flags
//         b, // source widechar string
//        -1, // assume NUL-terminated
//         p, // target buffer
//         SysStringLen(b)+1, // target buffer length
//         NULL, // use system default char
//         NULL); // don't care if default used
//    s.ReleaseBuffer();
//    #endif
//    return s;
//}
/////////////////////////////////////////////////////////////////////////////
UINT Clientthread(void *cs)
{
	SOCKET clientSocket = (SOCKET)cs;
	int recvcount=0;
	int retint=0,retint2=0;
	CString sqlstr=_T("");
	variant_t RecordsAffected;
	CString strValue=_T("");
	CCTSServerApp* tp = (CCTSServerApp*)AfxGetApp();
	char sendbuf[10240];
	char sendbuf2[3072];
	int m_nResultCol=0,loop1=0,loop2=0;
	int datalength=0,totalnum=0;
	int bufnum1=0,bufnum2=0;
	int i=0,actint=0,temp1=0,temp2=0;
	//char recvBuf[512];
	char recvBuf[1024];
	int timeout=0;
	
	//test
	///////////////////////////
	char *psql;
	///////////////////////////
	
	_RecordsetPtr m_pRecordset;
	m_pRecordset.CreateInstance(__uuidof(Recordset));
	while (1)
	{
		//init
		///////////////////////////////////////
		recvcount=0;
		retint=0;
		retint2=0;
		actint=0;
		temp1=0;
		temp2=0;
		timeout=0;
		///////////////////////////////////////
		
		//retint=recv(clientSocket,recvBuf,512,0);
		retint=recv(clientSocket,recvBuf,1024,0);
		if (retint==0 || retint==-1)
		{
			closesocket(clientSocket);
			break;
		}
		temp1=recvBuf[1];
		if (temp1<0)
			temp1=temp1+256;
		temp2=recvBuf[2];
		if (temp2<0)
			temp2=temp2+256;
		actint=temp1*256+temp2;
		timeout=1000;
		setsockopt(clientSocket, SOL_SOCKET, SO_RCVTIMEO,(char*)&timeout,sizeof(int));
		while(retint!=actint)
		{
            //retint2=recv(clientSocket,recvBuf+retint,512-retint,0);
			retint2=recv(clientSocket,recvBuf+retint,1024-retint,0);
			retint=retint+retint2;
			recvcount++;
			if (recvcount==4)
			{
				recvcount=0;
				recvBuf[0]=0;
				sendbuf[0]=8;
				send(clientSocket,sendbuf,1,0);
				break;
			}
		}
		timeout=0;
		setsockopt(clientSocket, SOL_SOCKET, SO_RCVTIMEO,(char*)&timeout,sizeof(int));
		
		//test code begin
		//////////////////////////////////////////////////////////////////////////////
		psql=&recvBuf[3];
	    sqlstr = psql;
		sqlstr.Replace("'","*");
        sqlstr = "insert into transfersql values('"+sqlstr;
		sqlstr = sqlstr +"')";
		try
		{
			tp->m_cConn->Execute((_bstr_t)sqlstr,&RecordsAffected,adCmdText);
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}
		//////////////////////////////////////////////////////////////////////////////
		//test code end
		
		if (recvBuf[0]==3)
		{
			recvBuf[0]=32;
			recvBuf[1]=32;
			recvBuf[2]=32;
			
			//init
			//////////////////////////////////
			sqlstr=_T("");
			strValue=_T("");
			m_nResultCol=0;
			loop1=0;
			loop2=0;
			datalength=0;
			totalnum=0;
			bufnum1=0;
			bufnum2=0;
			i=0;
			//////////////////////////////////
			
			sqlstr=recvBuf;
			
			try
			{
				m_pRecordset->CursorLocation=adUseClient;
				m_pRecordset->Open(_bstr_t(sqlstr),_variant_t((IDispatch*)tp->m_cConn,true),adOpenDynamic,adLockOptimistic,adCmdText);
			}
			catch(_com_error *e)
			{
				AfxMessageBox(e->ErrorMessage());
			}
			m_nResultCol=m_pRecordset->Fields->GetCount();
			if (!m_pRecordset->ADOEOF)
			{
				m_pRecordset->MoveFirst();
				totalnum=2;
				while(!m_pRecordset->ADOEOF)
				{
					for (loop1=0;loop1<m_nResultCol;loop1++)
					{
						VARIANT varsrc,vardes;
						VariantInit(&varsrc);
						VariantInit(&vardes);
						varsrc=m_pRecordset->GetCollect((long)loop1);
						CString varstr=_T(" ");
						if (varsrc.vt!= VT_NULL)
						{
							if(varsrc.vt!= VT_BSTR)
							{
								VariantChangeType(&vardes,&varsrc, 0, VT_BSTR);
                                varstr=vardes.bstrVal;
							}
							else
							{
                                varstr=varsrc.bstrVal;
                                if (varstr=="")
                                    varstr=" ";
							}
						}
						datalength=varstr.GetLength();
						strcpy(&sendbuf[totalnum],varstr);
						totalnum+=datalength;
						sendbuf[totalnum]=26;
						totalnum++;
					}
					sendbuf[totalnum]=27;
					totalnum++;
					m_pRecordset->MoveNext();
				}
				m_pRecordset->Close();
				sendbuf[0]=totalnum/256;
				sendbuf[1]=totalnum%256;
				while(bufnum1<totalnum)
				{
					bufnum2=3072;
					for (i=0;i<3072;i++)
					{
						if (bufnum1+i==totalnum)
						{
							bufnum2=i;
							break;
						}
						sendbuf2[i]=sendbuf[bufnum1+i];
					}
					send((SOCKET)cs,sendbuf2,bufnum2,0);
					bufnum1+=bufnum2;
				}
			}
			else
			{
				m_pRecordset->Close();
				sendbuf[totalnum]=27;
				totalnum++;
				send(clientSocket,sendbuf,totalnum,0);
			}
		}
		
		if (recvBuf[0]==1)
		{
			recvBuf[0]=32;
			recvBuf[1]=32;
			recvBuf[2]=32;
			sqlstr = _T("");
			sqlstr=recvBuf;
			try
			{
				tp->m_cConn->Execute((_bstr_t)sqlstr,&RecordsAffected,adCmdText);
			}
			catch(_com_error *e)
			{
				AfxMessageBox(e->ErrorMessage());
			}
			sendbuf2[0]='\3';
			send(clientSocket,sendbuf2,1,0);
		}
	}
	ExitThread(0);
	if (m_pRecordset) 
		m_pRecordset.Release();
    m_pRecordset=NULL;
	return 1;
}
UINT AcceptThread(void *s)
{
	int status=0;
	int addrLen=0;
	SOCKADDR_IN clientSockAddr;
	SOCKET serverSocket;
	SOCKET clientSocket;
	addrLen = sizeof (SOCKADDR_IN);
	serverSocket = SOCKET(s);
	while (1)
	{
		CWinThread* pThread;
		clientSocket = accept(serverSocket, (LPSOCKADDR)&clientSockAddr, &addrLen);
		pThread = AfxBeginThread(Clientthread, (LPVOID)clientSocket);
		if (pThread == NULL)
		{
			AfxMessageBox("ERROR: Unable to create thread!", MB_OK);
			status = closesocket(clientSocket);
			if (status == SOCKET_ERROR)
			{
				AfxMessageBox("ERROR: closesocket unsuccessful!", MB_OK);
			}
		}
	}
}
CCTSServerDlg::CCTSServerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCTSServerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCTSServerDlg)
	// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCTSServerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCTSServerDlg)
	// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCTSServerDlg, CDialog)
//{{AFX_MSG_MAP(CCTSServerDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(ID_MENUDISPLAY, OnMenudisplay)
ON_COMMAND(ID_MENUQUIT, OnMenuquit)
ON_WM_SIZE()
ON_MESSAGE(WM_SHOWRECEVER,ShowRecever)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCTSServerDlg message handlers

BOOL CCTSServerDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	//////////////////////////////////////////////////////////////////////////
	Init_net(ServerPort);
	//////////////////////////////////////////////////////////////////////////
	
	exitflag=false;
	Noti.cbSize=(DWORD)sizeof(NOTIFYICONDATA);
	Noti.hWnd=this->m_hWnd;
	Noti.uID=IDR_MAINFRAME;
	Noti.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;
	Noti.uCallbackMessage=WM_SHOWRECEVER;//自定義的消息名稱
	Noti.hIcon=m_hIcon;
	strcpy(Noti.szTip,"CTS手持終端應用服務器");//信息提示
	Shell_NotifyIcon(NIM_ADD,&Noti);
    PostMessage(WM_SIZE,0,0);
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCTSServerDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting
		
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
		
		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		
		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CCTSServerDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

/////////////////////////////////////////////////////////////////////////////
BOOL CCTSServerDlg::Init_net(u_short PORT)
{
	status=WSAStartup(MAKEWORD(1, 1), &Data);
	if (status != 0)
	{
		MessageBox("ERROR: WSAStartup unsuccessful!","handset",MB_OK);
		return  false;
	}
	
	memset(&serverSockAddr, 0, sizeof(serverSockAddr));
    serverSockAddr.sin_port=htons(PORT);
    serverSockAddr.sin_family=AF_INET;
    serverSockAddr.sin_addr.s_addr=htonl(INADDR_ANY);
	
    serverSocket=socket(AF_INET, SOCK_STREAM, 0);
    if (serverSocket == INVALID_SOCKET)
	{
		MessageBox("socket unsuccessful!","handset",MB_OK);
		status=WSACleanup();
		if (status == SOCKET_ERROR)
			MessageBox("ERROR: WSACleanup unsuccessful!","handset",MB_OK); 
		return false;
	}
	
    status=bind(serverSocket, (LPSOCKADDR) &serverSockAddr, sizeof(serverSockAddr));
    if (status == SOCKET_ERROR)
	{
		MessageBox("ERROR: bind unsuccessful!","handset",MB_OK);
		return false;
	}
	
	status=listen(serverSocket, 5);
	if (status == SOCKET_ERROR)
	{
		MessageBox("ERROR: listen unsuccessful!","handset",MB_OK);
		return false;
	}
	AfxBeginThread(AcceptThread, (LPVOID)serverSocket);
	return true;
}

void CCTSServerDlg::ShowRecever(WPARAM wParam, LPARAM lParam)
{
	if(wParam!=IDR_MAINFRAME)
		return;
	switch(lParam)
	{
	case WM_RBUTTONUP:
		{
			
			LPPOINT lpoint=new tagPOINT;
			::GetCursorPos(lpoint);
			CMenu m_menu2,* m_pop2;
			m_menu2.LoadMenu(IDR_MENU_POP);
			m_pop2= m_menu2.GetSubMenu(0);
            SetForegroundWindow();
			m_pop2->TrackPopupMenu(TPM_LEFTALIGN
				| TPM_RIGHTBUTTON, lpoint->x, 
				lpoint->y,this);
			delete lpoint;
		}
		break;
	case WM_LBUTTONDBLCLK:
		{
            ShowWindow(SW_SHOW);
			ShowWindow(SW_SHOWDEFAULT);
		}
		break;
	}
}

void CCTSServerDlg::OnMenudisplay() 
{
	ShowWindow(SW_SHOW);
	ShowWindow(SW_SHOWDEFAULT);	
}

void CCTSServerDlg::OnMenuquit() 
{
	exitflag=true;
	ExitSystem();
}

void CCTSServerDlg::ExitSystem()
{
	if(MessageBox("您確定要關閉手持終端應用服務器嗎?","系統提示!",IDRETRY) == IDNO)
		return ;
	Shell_NotifyIcon(NIM_DELETE, &Noti);
	SendMessage(WM_CLOSE);
}

void CCTSServerDlg::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	if(cx==0 && cy==0)
		ShowWindow(SW_HIDE);
}

void CCTSServerDlg::OnClose() 
{
	ShowWindow(SW_HIDE);
	if (exitflag)
		CDialog::OnClose();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99麻豆久久久国产精品免费 | 91丨porny丨最新| 天堂久久久久va久久久久| 亚洲精品日韩专区silk | 91美女片黄在线观看91美女| 国产精品一区二区黑丝| 蜜桃传媒麻豆第一区在线观看| 天天综合日日夜夜精品| 视频一区二区欧美| 男人的天堂亚洲一区| 裸体一区二区三区| 精东粉嫩av免费一区二区三区| 精品中文字幕一区二区| 久久精品国产精品亚洲综合| 精品一区二区三区蜜桃| 国产99久久久精品| 99re亚洲国产精品| 日本高清不卡在线观看| 欧美日本国产一区| 精品免费视频.| 国产精品乱码一区二区三区软件| 亚洲视频在线观看三级| 亚洲国产精品欧美一二99| 蜜桃av一区二区三区电影| 国产高清一区日本| 欧美综合一区二区三区| 欧美肥妇bbw| 久久精品一区蜜桃臀影院| 亚洲日本电影在线| 七七婷婷婷婷精品国产| 国产传媒日韩欧美成人| 色综合激情久久| 日韩久久精品一区| 综合激情成人伊人| 欧美aaa在线| bt欧美亚洲午夜电影天堂| 欧美日韩第一区日日骚| 国产日韩欧美精品电影三级在线| 18成人在线观看| 捆绑变态av一区二区三区| 不卡视频一二三| 日韩一区二区在线看片| 1区2区3区精品视频| 捆绑调教美女网站视频一区| www.综合网.com| 日韩你懂的在线播放| 亚洲婷婷在线视频| 精品一区二区三区久久久| 在线观看视频一区二区欧美日韩| 久久伊人中文字幕| 日韩黄色免费电影| 91在线精品秘密一区二区| 日韩欧美国产高清| 午夜精品久久久久| a亚洲天堂av| 国产无人区一区二区三区| 丝袜美腿亚洲一区二区图片| 91网上在线视频| 亚洲国产高清在线观看视频| 毛片av一区二区| 欧美日韩三级在线| 亚洲激情在线激情| 国产精品99久久久久| 精品裸体舞一区二区三区| 香蕉成人啪国产精品视频综合网| 97se亚洲国产综合在线| 国产精品久久久久久福利一牛影视| 老司机精品视频线观看86| 在线综合亚洲欧美在线视频| 亚洲国产精品久久久男人的天堂| 99久久免费国产| 国产视频911| 粉嫩aⅴ一区二区三区四区| 欧美mv日韩mv国产网站| 水蜜桃久久夜色精品一区的特点| 91麻豆高清视频| 国产午夜精品一区二区| 国产成人av一区二区三区在线观看| 久久免费视频色| 国产综合色精品一区二区三区| 日韩欧美色综合| 久久99最新地址| 久久久久久久久久久久久久久99 | 亚洲精品一区二区三区在线观看| 男女性色大片免费观看一区二区| 欧美日韩成人一区二区| 日韩高清一级片| 精品美女在线观看| 国产九九视频一区二区三区| 日本一区二区三区四区在线视频 | 3d动漫精品啪啪一区二区竹菊| 亚洲欧美电影一区二区| 欧美性一区二区| 天堂va蜜桃一区二区三区漫画版| 欧美一区二区成人6969| 蜜乳av一区二区三区| 精品成人a区在线观看| 国产综合成人久久大片91| 国产精品午夜免费| 91麻豆蜜桃一区二区三区| 午夜精品久久久久影视| 精品国产髙清在线看国产毛片| 国产成人免费视频网站| 亚洲乱码中文字幕| 日韩欧美一区电影| www.欧美日韩| 日本欧美加勒比视频| 久久久精品人体av艺术| 一本大道av伊人久久综合| 免费看黄色91| 欧美高清一级片在线观看| 日韩一区二区视频在线观看| 九九视频精品免费| 亚洲欧美欧美一区二区三区| 制服丝袜一区二区三区| 国产成人综合亚洲91猫咪| 一区二区三区精密机械公司| 91精品国产福利在线观看 | 中文字幕一区二区三区精华液| 欧美影视一区在线| 激情综合网最新| 一区二区理论电影在线观看| 欧美精品一区二区三区视频 | 亚洲综合成人在线| 久久久久久一二三区| 欧美三级资源在线| 成人少妇影院yyyy| 美女视频免费一区| 亚洲国产综合人成综合网站| 国产欧美日韩激情| 日韩女优视频免费观看| 欧美日韩国产美女| 95精品视频在线| 久久er精品视频| 日韩电影免费在线看| 亚洲丝袜另类动漫二区| 久久精品人人做人人爽97| 91精品国产黑色紧身裤美女| 91久久精品午夜一区二区| 国产精品一区二区三区四区| 日本在线播放一区二区三区| 夜色激情一区二区| 一区二区三区四区蜜桃| 欧美激情在线一区二区| xf在线a精品一区二区视频网站| 91久久国产最好的精华液| 成人一二三区视频| 成人爽a毛片一区二区免费| 精品一区二区三区日韩| 奇米在线7777在线精品| 视频一区在线视频| 五月婷婷色综合| 亚洲国产日日夜夜| 亚洲自拍欧美精品| 亚洲成人av福利| 亚洲成人动漫在线免费观看| 一区二区成人在线| 亚洲sss视频在线视频| 亚洲一区二区四区蜜桃| 亚洲成人1区2区| 午夜免费久久看| 蜜芽一区二区三区| 国产剧情一区二区三区| 国产精品一区免费视频| 国产精品一二一区| 成人免费va视频| 99国产精品一区| 欧美亚洲愉拍一区二区| 欧美美女激情18p| 91精品免费在线| 欧美精品一区二区三区蜜臀| 国产日韩欧美精品在线| 亚洲欧洲av另类| 午夜久久久久久久久久一区二区| 日本视频在线一区| 国产高清久久久久| 色网站国产精品| 欧美变态口味重另类| 久久久99精品免费观看| 综合欧美亚洲日本| 日本成人在线不卡视频| 国产精品资源在线看| 91丨porny丨国产| 91精品福利在线一区二区三区 | 久久久久国产精品厨房| 国产精品成人免费精品自在线观看| 亚洲免费在线视频| 久久精品99久久久| 91丨九色丨黑人外教| 日韩免费福利电影在线观看| 中文在线资源观看网站视频免费不卡| 亚洲三级免费电影| 久久99精品视频| 91成人免费在线| 国产网站一区二区| 午夜精品福利一区二区蜜股av| 国产又黄又大久久| 色乱码一区二区三区88| 欧美精品一区二区三区在线播放| 一区二区三区精密机械公司|