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

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

?? winsockcomm.cpp

?? wince下EVC編譯通過的客戶端程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// WinsockComm.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "WinsockComm.h"
#include <commctrl.h>

// Vincent added codes here for include files
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <winsock2.h>
#include <Winuser.h>
#include <Pwinreg.h>
#include <Iphlpapi.h>
#include <IpTypes.h>
#include <Ws2tcpip.h>

#define MAX_LOADSTRING 100
// Global Variables:
HINSTANCE			hInst;			// The current instance
HWND				hwndCB;			// The command bar handle
// Forward declarations of functions included in this code module:
ATOM				MyRegisterClass	(HINSTANCE, LPTSTR);
BOOL				InitInstance	(HINSTANCE, int);
LRESULT CALLBACK	WndProc			(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About			(HWND, UINT, WPARAM, LPARAM);

// Vincent added codes here for function declarations
LRESULT CALLBACK	DoDemo			(HWND, UINT, WPARAM, LPARAM);
BOOL GetLANinfo(HWND hDlg);
DWORD WINAPI ServerThread (PVOID pArg);
DWORD WINAPI ClientStart (PVOID pArg);
int _tmainClient(PVOID pArg);
char * ConvertUnicodeToAscii(LPCWSTR p,int l);
void Print(TCHAR *pFormat, ...);

// Vincent added codes here for global variable declarations
IP_ADAPTER_INFO gStrucAdpInfo[4];
ADDRINFO  *gAddrInfo, *gAI;
SOCKET gsock = INVALID_SOCKET;
SOCKET gClientSock, gServerSock;
char *gIPaddress, *gPortNumber;
HANDLE hReadThread = INVALID_HANDLE_VALUE;
HWND gDemoDlg = NULL;

int WINAPI WinMain(	HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPTSTR    lpCmdLine,
					int       nCmdShow)
{
	MSG msg;
	HACCEL hAccelTable;

	// Perform application initialization:
	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINSOCKCOMM);

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return msg.wParam;
}

//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    It is important to call this function so that the application 
//    will get 'well formed' small icons associated with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
{
	WNDCLASS	wc;

    wc.style			= CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc		= (WNDPROC) WndProc;
    wc.cbClsExtra		= 0;
    wc.cbWndExtra		= 0;
    wc.hInstance		= hInstance;
    wc.hIcon			= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINSOCKCOMM));
    wc.hCursor			= 0;
    wc.hbrBackground	= (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName		= 0;
    wc.lpszClassName	= szWindowClass;

	return RegisterClass(&wc);
}

//
//  FUNCTION: InitInstance(HANDLE, int)
//
//  PURPOSE: Saves instance handle and creates main window
//
//  COMMENTS:
//
//    In this function, we save the instance handle in a global variable and
//    create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
	HWND	hWnd;
	TCHAR	szTitle[MAX_LOADSTRING];			// The title bar text
	TCHAR	szWindowClass[MAX_LOADSTRING];		// The window class name

	hInst = hInstance;		// Store instance handle in our global variable
	// Initialize global strings
	LoadString(hInstance, IDC_WINSOCKCOMM, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance, szWindowClass);

	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	if (!hWnd)
	{	
		return FALSE;
	}

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);
	if (hwndCB)
		CommandBar_Show(hwndCB, TRUE);

	return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	// Vincent to mark all
	/*
	HDC hdc;
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	TCHAR szHello[MAX_LOADSTRING];
	*/

	switch (message) 
	{
		case WM_COMMAND:
			// Vincent to mark all
			/*
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			switch (wmId)
			{
				case IDM_HELP_ABOUT:
				   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
				   break;
				case IDM_FILE_EXIT:
				   DestroyWindow(hWnd);
				   break;
				default:
				   return DefWindowProc(hWnd, message, wParam, lParam);
			}
			*/
			break;
		case WM_CREATE:
			// Vincent to mark all
			/*
			hwndCB = CommandBar_Create(hInst, hWnd, 1);			
			CommandBar_InsertMenubar(hwndCB, hInst, IDM_MENU, 0);
			CommandBar_AddAdornments(hwndCB, 0, 0);
			*/
			// Vincent added codes here
   		    DialogBox(hInst, (LPCTSTR)IDD_DIALOG_DEMO, hWnd, (DLGPROC)DoDemo);
		    DestroyWindow(hWnd);

			break;
		case WM_PAINT:
			// Vincent to mark all
			/*
			RECT rt;
			hdc = BeginPaint(hWnd, &ps);
			GetClientRect(hWnd, &rt);
			LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
			DrawText(hdc, szHello, _tcslen(szHello), &rt, 
				DT_SINGLELINE | DT_VCENTER | DT_CENTER);
			EndPaint(hWnd, &ps);
			*/
			break;
		case WM_DESTROY:
			// Vincent to mark all
			/*
			CommandBar_Destroy(hwndCB);
			PostQuitMessage(0);
			*/
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for the About box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	RECT rt, rt1;
	int DlgWidth, DlgHeight;	// dialog width and height in pixel units
	int NewPosX, NewPosY;

	switch (message)
	{
		case WM_INITDIALOG:
			// trying to center the About dialog
			if (GetWindowRect(hDlg, &rt1)) {
				GetClientRect(GetParent(hDlg), &rt);
				DlgWidth	= rt1.right - rt1.left;
				DlgHeight	= rt1.bottom - rt1.top ;
				NewPosX		= (rt.right - rt.left - DlgWidth)/2;
				NewPosY		= (rt.bottom - rt.top - DlgHeight)/2;
				
				// if the About box is larger than the physical screen 
				if (NewPosX < 0) NewPosX = 0;
				if (NewPosY < 0) NewPosY = 0;
				SetWindowPos(hDlg, 0, NewPosX, NewPosY,
					0, 0, SWP_NOZORDER | SWP_NOSIZE);
			}
			return TRUE;

		case WM_COMMAND:
			if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

// ================================
// Vincent added all codes below
// ================================
LRESULT CALLBACK DoDemo(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	RECT rt, rt1;
	int DlgWidth, DlgHeight;	// dialog width and height in pixel units
	int NewPosX, NewPosY;

	TCHAR tchBuffer[20];
	UINT  cntText;
    DWORD dwTStat;
	gDemoDlg = hDlg;
    WSADATA wsaData;


	switch (message)
	{
		case WM_INITDIALOG:
			// trying to center the About dialog
			if (GetWindowRect(hDlg, &rt1)) {
				GetClientRect(GetParent(hDlg), &rt);
				DlgWidth	= rt1.right - rt1.left;
				DlgHeight	= rt1.bottom - rt1.top ;
				NewPosX		= (rt.right - rt.left - DlgWidth)/2;
				NewPosY		= (rt.bottom - rt.top - DlgHeight)/2;
				
				// if the About box is larger than the physical screen 
				if (NewPosX < 0) NewPosX = 0;
				if (NewPosY < 0) NewPosY = 0;
				SetWindowPos(hDlg, 0, NewPosX, NewPosY,
					0, 0, SWP_NOZORDER | SWP_NOSIZE);
			}
			// Vincent added code here
			SendDlgItemMessage(hDlg, IDC_COMBO_ROLE, CB_INSERTSTRING , -1, (LPARAM)(LPCSTR)TEXT("Server"));
			SendDlgItemMessage(hDlg, IDC_COMBO_ROLE, CB_INSERTSTRING , -1, (LPARAM)(LPCSTR)TEXT("Client"));
			SendDlgItemMessage(hDlg, IDC_COMBO_ROLE, CB_SETCURSEL, 0, 0);
		    // Initiate WinSock Library
			if(WSAStartup(MAKEWORD(2,2), &wsaData))
		    {
				// WSAStartup failed
				return FALSE;
			}
			// Get Local IP and show in IP edit box
			if (!GetLANinfo(hDlg))
			{
				MessageBox(hDlg, TEXT("Get Local IP Failed"), TEXT("LAN info"), MB_OK);
				return FALSE;
			}
			return TRUE;

		case WM_COMMAND:
			if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
			{
				// Added by Vincent to clear resources
			    if(gsock != INVALID_SOCKET)
				{
					shutdown(gsock, SD_BOTH);
					closesocket(gsock);
				}
			    if(gServerSock != INVALID_SOCKET)
					closesocket(gServerSock);
			    if(gClientSock != INVALID_SOCKET)
				{
					shutdown(gClientSock, SD_BOTH);
					closesocket(gClientSock);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色图天堂网| 豆国产96在线|亚洲| 欧美高清视频一二三区| 日韩电影免费一区| 日韩欧美高清dvd碟片| 麻豆91在线观看| 国产亚洲欧洲997久久综合 | 精品国产91久久久久久久妲己| 日本亚洲三级在线| 久久精品人人做人人综合 | 国产精品一区三区| 日韩久久一区二区| 欧美日韩电影在线播放| 久久国产欧美日韩精品| 久久精品人人做人人爽97| 成人av免费在线播放| 亚洲国产精品久久久久婷婷884| 在线电影国产精品| 国产精一区二区三区| 亚洲啪啪综合av一区二区三区| 精品视频一区二区不卡| 国内精品久久久久影院薰衣草| 国产精品国产三级国产有无不卡| 欧美年轻男男videosbes| 精品一区二区三区免费| 最新欧美精品一区二区三区| 91精品国产入口在线| 成人一区二区三区在线观看| 亚洲成a天堂v人片| 国产欧美日韩不卡| 欧美日韩国产乱码电影| 国产91精品一区二区麻豆亚洲| 亚洲综合在线视频| 久久精子c满五个校花| 欧美美女黄视频| 成人99免费视频| 日本欧美韩国一区三区| 亚洲欧美日韩在线| 精品国产百合女同互慰| 欧美亚洲国产一区在线观看网站| 国精产品一区一区三区mba桃花| 一区二区免费看| 国产精品久久久一本精品| 精品国产区一区| 337p亚洲精品色噜噜| 99精品在线观看视频| 国产一区二区三区免费| 日韩精品色哟哟| 亚洲欧美精品午睡沙发| 国产区在线观看成人精品| 日韩无一区二区| 欧美在线观看一区二区| 成人a区在线观看| 国产精品一级片| 美女尤物国产一区| 日韩和欧美一区二区| 一区二区三区中文字幕电影| 中文字幕av在线一区二区三区| 欧美α欧美αv大片| 欧美日韩国产精选| 色悠悠亚洲一区二区| 丁香天五香天堂综合| 国内精品国产三级国产a久久| 日韩av一级片| 日韩在线a电影| 亚洲国产va精品久久久不卡综合| 亚洲精品成人a在线观看| 亚洲免费资源在线播放| 国产精品青草综合久久久久99| 精品国产露脸精彩对白| 欧美成人精品1314www| 在线播放欧美女士性生活| 欧美美女激情18p| 69av一区二区三区| 欧美一区二区在线免费观看| 91精品国产色综合久久久蜜香臀| 在线不卡中文字幕播放| 日韩一级二级三级精品视频| 日韩亚洲电影在线| 久久久久久日产精品| 国产日韩综合av| 中文字幕免费不卡| 亚洲色图欧洲色图婷婷| 一区二区三区欧美激情| 亚洲午夜精品17c| 日本中文字幕一区| 精品写真视频在线观看| 国产福利91精品一区二区三区| 国产成人在线免费观看| 99在线视频精品| 欧美无砖专区一中文字| 日韩欧美另类在线| 国产午夜精品在线观看| 亚洲欧美日韩国产综合| 亚洲福中文字幕伊人影院| 日本在线观看不卡视频| 国产一区高清在线| 91欧美一区二区| 欧美系列一区二区| 久久综合精品国产一区二区三区| 国产精品婷婷午夜在线观看| 夜夜嗨av一区二区三区网页| 美女视频黄久久| 成年人网站91| 欧美三级韩国三级日本三斤| 欧美va亚洲va| 亚洲精选免费视频| 理论片日本一区| 99久久精品情趣| 欧美一区二区视频在线观看2020| 久久品道一品道久久精品| 亚洲精品视频在线观看免费| 日韩成人免费在线| 懂色av一区二区三区蜜臀| 欧美日韩一区二区三区不卡| 精品国产露脸精彩对白| 一区二区高清免费观看影视大全| 麻豆国产91在线播放| 91视频免费看| 精品久久人人做人人爽| 亚洲伦理在线免费看| 经典三级在线一区| 精品视频免费在线| 国产精品无圣光一区二区| 午夜私人影院久久久久| 国产成人综合亚洲网站| 欧美一级理论片| 亚洲乱码中文字幕| 国产盗摄精品一区二区三区在线| 欧美天堂一区二区三区| 国产欧美一区视频| 人禽交欧美网站| 欧美性色黄大片手机版| 国产精品久久久久久亚洲伦| 经典三级在线一区| 欧美精品99久久久**| 成人欧美一区二区三区1314 | 国产原创一区二区| 欧美日韩成人综合| 亚洲欧美另类综合偷拍| 国产v日产∨综合v精品视频| 欧美电影在线免费观看| 亚洲自拍欧美精品| 99精品视频中文字幕| 国产亚洲欧美中文| 国产真实精品久久二三区| 日韩一区二区精品| 三级在线观看一区二区| 在线观看国产一区二区| 亚洲欧洲成人精品av97| 丁香婷婷综合网| 日本一区二区三区电影| 国产精品资源在线| 久久久国产午夜精品| 久久草av在线| 精品久久人人做人人爰| 极品少妇一区二区三区精品视频 | 在线一区二区三区| 亚洲欧美综合在线精品| 成人午夜激情在线| 国产校园另类小说区| 国产乱人伦精品一区二区在线观看| 日韩欧美一级二级| 日韩电影在线观看网站| 欧美一级电影网站| 久久爱另类一区二区小说| 精品第一国产综合精品aⅴ| 精品一区二区三区在线观看国产| 日韩一区二区视频在线观看| 美腿丝袜一区二区三区| 精品国产免费人成在线观看| 激情都市一区二区| 久久蜜桃一区二区| 国产成人av网站| 亚洲图片你懂的| 欧美三级中文字幕| 日韩高清在线一区| 久久尤物电影视频在线观看| 国产精品一区二区免费不卡| 亚洲国产电影在线观看| 色欧美日韩亚洲| 丝袜美腿亚洲色图| 欧美xxx久久| 9久草视频在线视频精品| 亚洲国产精品人人做人人爽| 日韩欧美美女一区二区三区| 国产iv一区二区三区| 亚洲丝袜精品丝袜在线| 欧美揉bbbbb揉bbbbb| 蜜臀久久久99精品久久久久久| 久久久高清一区二区三区| 成人免费va视频| 伊人性伊人情综合网| 欧美一区二区三区免费视频| 久久99蜜桃精品| 亚洲欧洲国产日韩| 欧美一区二区三区播放老司机| 国产高清精品网站| 一区二区三区欧美| 久久免费看少妇高潮|