⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.cpp

📁 Example of network programing. This example shows how to sent information (file, task (process) list
💻 CPP
字号:
// Client.cpp 
//
#include "resource.h"
#include "windows.h"
#include <tlhelp32.h>
#include <commctrl.h>

#define WM_SOCKET WM_USER+3

MSG msg;

char buffer[8192];
char buff[64];
int RDbytes;
LPSTR CurChar; 

PROCESSENTRY32 pe32;
MODULEENTRY32 mod;
HANDLE hProcessSnap;

int i,a;

HINSTANCE hInst;
HICON mainIcon;
LVCOLUMN LVC;
LVITEM IT;
TC_ITEM Tab;
NMHDR * TABntf;
HIMAGELIST himlLV; 

POINT pt;
HMENU hPopup;

HWND hMAIN,hCONNS; 
HWND hLIST,hADRS,hADRD,hSTAT;

SYSTEMTIME SysTime;

WSADATA wsaData;
WORD WSAEvent;
SOCKET sendsock;
SOCKET currentsock;
SOCKADDR_IN	addr_Sock;
SOCKET listen_Sock;
SOCKET send_Sock;
PHOSTENT pHost;

BOOL CALLBACK MainDlg(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	hInst=hInstance;
	hMAIN= CreateDialog(hInstance,MAKEINTRESOURCE(IDD_MAIN),NULL, MainDlg);

	sendsock=0;

	while (GetMessage (&msg, NULL, 0, 0))
        {

                TranslateMessage (&msg) ;
                DispatchMessage (&msg) ;
        }
        return msg.wParam ;

	return 0;
}

int SendCommand(char cmd)
{
int RDbytes;

addr_Sock.sin_addr.s_addr = inet_addr((const char *)"192.168.1.5"); 
//pHost=gethostbyname( (const char *)&"nuts.homeip.net" );
//memmove(&addr_Sock.sin_addr.s_addr,*pHost->h_addr_list,sizeof(PCHAR));

addr_Sock.sin_family = AF_INET;
addr_Sock.sin_port = htons(333);
sendsock=socket (AF_INET,SOCK_STREAM,0);
connect(sendsock,(struct sockaddr *)&addr_Sock,sizeof(addr_Sock));

buffer[0]=cmd;
send(sendsock,buffer,1,0);
Sleep(100);
RDbytes=recv(sendsock, buffer, 2, 0);

RDbytes=*(WORD *)buffer;
if (RDbytes)
{
ZeroMemory(&buffer,RDbytes);
i=0;
while (i!=RDbytes)
	{
	i+=recv(sendsock, buffer+i, RDbytes-i, 0);
	}
}
closesocket(sendsock); 
return RDbytes;
}

BOOL CALLBACK MainDlg(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
		case WM_INITDIALOG:
		{
		WSAStartup (MAKEWORD(2,2), &wsaData);

		INITCOMMONCONTROLSEX icc;
		icc.dwSize=sizeof(INITCOMMONCONTROLSEX);
		icc.dwICC=ICC_LISTVIEW_CLASSES;
		InitCommonControlsEx(&icc);

		mainIcon=LoadIcon (hInst,MAKEINTRESOURCE(IDI_MAIN));
		SetClassLong(hwnd, GCL_HICON, (LONG)mainIcon );
		//hPopup=LoadMenu(hInst,MAKEINTRESOURCE (IDR_POPUPS));
		//himlLV = ImageList_LoadBitmap(hInst,MAKEINTRESOURCE(IDB_LEDS),16,1,0);

		hLIST=GetDlgItem(hwnd,IDC_LIST);
		SendMessage (hLIST,LVM_SETEXTENDEDLISTVIEWSTYLE , 0, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

		LVC.mask=LVCF_TEXT | LVCF_WIDTH;
		LVC.pszText=buffer;

		lstrcpy((char *)&buffer,"PID");
		LVC.cx=70;
		SendMessage (hLIST, LVM_INSERTCOLUMN, 0, (LONG)&LVC);

		lstrcpy((char *)&buffer,"Process");
		LVC.cx=120;
		SendMessage (hLIST, LVM_INSERTCOLUMN, 0, (LONG)&LVC);

		break;
		}




		case WM_CLOSE:
		{
		if (sendsock) {closesocket(sendsock);sendsock=0;}
		closesocket(listen_Sock);
		WSACleanup();
		DestroyIcon(mainIcon);
		//DestroyMenu(hPopup);
		EndDialog(hwnd,0);
		DestroyWindow(hwnd);
		PostQuitMessage(0);
		
		break;
		}
		case WM_COMMAND:
		{
			switch (LOWORD(wParam))
			{
			case IDPM_CONNS:
				{
					ShowWindow(hCONNS,SW_SHOW);
				break;
				}

			case IDPM_SCREEN:
				{
				i=SendCommand('S');
				if (i)
				{
				HANDLE img_File = CreateFile("portr.jpg", GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
				if (img_File!=INVALID_HANDLE_VALUE)
				{
				DWORD ii;
				WriteFile(img_File, (byte*)buffer, i, &ii, NULL);
				CloseHandle(img_File);
				}
				}
				break;
				}

			case IDPM_PROC:
				{

				SendCommand('P');
				ListView_DeleteAllItems(hLIST);
				CurChar=(char *)&buffer;
				a=1;
				while (a!=0)
				{
				
				IT.mask= LVIF_TEXT;
				IT.iItem=0;
				IT.iSubItem=0;
				IT.pszText=CurChar;
				SendMessage (hLIST,LVM_INSERTITEM, 0, (LONG)&IT);



				a=lstrlen(CurChar);
				CurChar+=a+1;
				
				a=*(LONG *)CurChar;
				CurChar+=4;
				
				wsprintf((char *)&buff,"%X",(unsigned long)a);
				IT.pszText=buff;
				IT.iSubItem=1;
				SendMessage(hLIST,LVM_SETITEMTEXT,0,(LONG)&IT);
				
				a=*CurChar;
				}
				break;
				}

			}
		}
	}
return false;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -