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

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

?? 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);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品潘金| 久久久欧美精品sm网站| 欧美一区二区精品| 中文字幕欧美日韩一区| 亚洲国产cao| 成人高清免费在线播放| 欧美一区二区三区四区五区| 久久99热这里只有精品| 一本大道久久a久久精二百| 久久久久久9999| 午夜国产精品一区| 色天使色偷偷av一区二区| 久久免费看少妇高潮| 欧美aaa在线| 欧美影院精品一区| 亚洲激情欧美激情| 成人免费视频国产在线观看| 久久综合色之久久综合| 免费成人在线网站| 欧美日韩1区2区| 亚洲男同性视频| av亚洲精华国产精华精| 国产日产欧产精品推荐色| 麻豆精品一区二区三区| 精品视频1区2区3区| 夜夜亚洲天天久久| 一本色道亚洲精品aⅴ| 国产精品久久久久久亚洲伦| 国产激情一区二区三区四区| www久久精品| 国产一区二区三区四区五区入口| 日韩一区二区三区电影在线观看 | 日日摸夜夜添夜夜添精品视频| 91在线观看地址| 亚洲视频一区在线| 91亚洲精品一区二区乱码| 亚洲欧美日韩综合aⅴ视频| 97精品久久久午夜一区二区三区| 1024成人网| 在线观看欧美精品| 日一区二区三区| 日韩精品中文字幕一区| 激情另类小说区图片区视频区| 日韩一区二区高清| 精品一区二区三区欧美| 欧美国产丝袜视频| 成人91在线观看| 一区二区成人在线观看| 欧美日韩dvd在线观看| 久久97超碰色| 亚洲国产精品成人久久综合一区| 成人精品国产福利| 亚洲精品成a人| 91麻豆精品国产91久久久| 久久精品国产精品亚洲精品| 久久精品亚洲精品国产欧美kt∨| 成人高清视频在线观看| 一区二区三区中文免费| 欧美日韩精品电影| 免费成人美女在线观看| 中文字幕精品一区二区精品绿巨人| 91啪亚洲精品| 免费人成黄页网站在线一区二区 | 欧美日韩性生活| 久久99久久99精品免视看婷婷 | 亚洲人成在线观看一区二区| 一本大道久久a久久综合| 日韩国产精品久久久久久亚洲| 欧美精品一区二区三| 91亚洲精品乱码久久久久久蜜桃| 首页国产欧美久久| 国产精品久久久久久久久果冻传媒 | 精品电影一区二区| 99riav久久精品riav| 日本女优在线视频一区二区| 国产亚洲精品精华液| 欧美色综合网站| 国产成人在线看| 三级影片在线观看欧美日韩一区二区 | 国产欧美一区二区精品忘忧草 | 99re视频精品| 专区另类欧美日韩| 欧美一区二区在线视频| 国产成人免费视频精品含羞草妖精| 一区二区成人在线视频| 久久久久久久综合色一本| 欧美精品一二三四| 色综合视频一区二区三区高清| 久久成人久久爱| 午夜影视日本亚洲欧洲精品| 国产精品入口麻豆原神| 日韩欧美一二三四区| 欧美午夜理伦三级在线观看| 成人精品国产免费网站| 亚洲欧洲在线观看av| 国产精品国产三级国产普通话99| 欧美丰满少妇xxxxx高潮对白| 不卡的电影网站| 国产成人免费视频网站 | 国产suv精品一区二区三区| 日韩电影在线免费看| 一区二区三区在线免费观看| 国产女人水真多18毛片18精品视频 | 久久女同互慰一区二区三区| 欧美一区二区三区在线观看| 91久久精品一区二区三| av不卡在线观看| 成人少妇影院yyyy| 国产福利精品一区二区| 国产精品一区二区三区99| 美女一区二区在线观看| 丝袜亚洲另类欧美| 午夜成人免费电影| 五月综合激情日本mⅴ| 久久99精品国产麻豆婷婷| 三级久久三级久久久| 亚洲国产美女搞黄色| 亚洲与欧洲av电影| 亚洲激情在线激情| 亚洲激情六月丁香| 亚洲国产精品久久久男人的天堂| 一区二区三区在线免费播放| 一区二区三区四区在线免费观看| 亚洲三级在线免费观看| 亚洲精品v日韩精品| 亚洲成人777| 麻豆精品一二三| 国产精品综合在线视频| 成人在线综合网| 一本大道综合伊人精品热热| 欧美日韩一区精品| 日韩一区二区三区免费看| 亚洲精品一区二区三区精华液| 久久久久久亚洲综合影院红桃| 国产午夜一区二区三区| 国产精品国产三级国产有无不卡| 国产精品国产三级国产aⅴ无密码| 中文字幕制服丝袜成人av| 一区二区三区成人| 裸体歌舞表演一区二区| 国产精品一区二区视频| 91麻豆.com| 8x福利精品第一导航| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品美女www爽爽爽| 亚洲成a人片在线观看中文| 蜜臂av日日欢夜夜爽一区| 粉嫩av一区二区三区在线播放| 91无套直看片红桃| 欧美一级一区二区| 国产精品国产自产拍高清av| 香蕉加勒比综合久久| 国产电影精品久久禁18| 欧美天堂一区二区三区| 2023国产精品| 午夜a成v人精品| 成人午夜伦理影院| 欧美日本免费一区二区三区| 久久精品人人做| 日韩vs国产vs欧美| 波多野结衣中文字幕一区二区三区| 欧美日韩国产一区二区三区地区| 久久精品人人做人人爽97| 亚洲国产精品久久人人爱| 懂色av一区二区三区免费观看 | 色系网站成人免费| 精品日本一线二线三线不卡| 一区二区日韩av| 国产黄人亚洲片| 91精品国产一区二区| 亚洲欧美日韩国产手机在线| 久久成人av少妇免费| 欧美亚洲国产一卡| 中文字幕日韩精品一区| 韩国成人在线视频| 欧美精品一级二级| 亚洲免费av在线| 波波电影院一区二区三区| 精品久久久久久久一区二区蜜臀| 一区二区三区毛片| 91丨九色丨尤物| 国产精品美女久久久久aⅴ | 色综合天天视频在线观看 | 自拍偷拍国产精品| 欧日韩精品视频| 亚洲男女一区二区三区| 成人国产免费视频| 中文字幕精品综合| 国产一区二区在线视频| 精品国产乱码91久久久久久网站| 香蕉久久一区二区不卡无毒影院| 色av综合在线| 综合欧美一区二区三区| 国产不卡视频在线观看| 国产片一区二区| 成年人午夜久久久| 综合婷婷亚洲小说| 91亚洲精品乱码久久久久久蜜桃 | 2024国产精品视频| 国产精品一卡二卡在线观看|