• 大小: 2.98MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-14
  • 语言: C/C++
  • 标签: 远程控制  C++  源码  

资源简介

实现远程控制。分客户端和服务器端。可实时地监控和操纵远程机器且清晰度较高。

资源截图

代码片段和文件信息

//  从服务器端接收桌面屏幕
#include 
#include 
#include 
#include “client.h“
#include “command.h“
#include “gdi.h“
#include “HuffCompress.h“
#include “RLE.h“
#include “time.h“

#define DEFAULT_PORT        5150
#define REFRESH_MSG “REFRESH“
#define SETFLAGS XP1_GUARANTEED_DELIVERY|XP1_GUARANTEED_ORDER
#define NOTSETFLAGS XP1_CONNECTIONLESS
#define LPBMIH LPBITMAPINFOHEADER

UINT    port=DEFAULT_PORT;
BOOL bSendOnly = FALSE;
BOOL fSending = FALSE;
BOOL fReceiving = FALSE;
DWORD iLen;
char *pDIBitmap;
int iScreenWidthiScreenHeight;
int iWidthiHeightiWidthXiHeightY;
int iWidth1iWidth2iHeight1iHeight2;
int iCompressionLevel;
BOOL fDIBitmap = FALSE;
LPBMIH lpBitmapIH;
struct sockaddr_in server;
SOCKET sClient;
BOOL fRefreshing = FALSE;
BOOL fConnected = FALSE;
int nGridX = 8nGridY = 4;
BOOL fGridX = FALSEfGridY = FALSE;
WORD bmBitsPixel = 4;

struct GdiList GdiStart;
struct GdiList *pGdiNode;

int SelectProtocols(DWORD dwSetFlagsDWORD dwNotSetFlagsLPWSAPROTOCOL_INFO lpProtocolBufferLPDWORD lpdwBufferLengthWSAPROTOCOL_INFO *Protocol);

void InitGrids()
{
int iLoopjLoopnGrid;
struct GdiDS Gdi;

Gdi.fDIBitmap = FALSE;
GdiStart.pNext = NULL;
pGdiNode = &GdiStart;

if ((nGridX > 0) && (nGridY > 0))
{
for (iLoop = 0;iLoop < nGridX;iLoop++)
{
for (jLoop = 0;jLoop < nGridY;jLoop++)
{
Gdi.iGridX = iLoop;
Gdi.iGridY = jLoop;

pGdiNode = Add_Gdi(pGdiNodeGdi);
}
}
}
else
{
nGrid = max(nGridXnGridY);
for (iLoop = 0;iLoop < nGrid;iLoop++)
{
if (nGridX > 0)
Gdi.iGridX = iLoop;
else
Gdi.iGridX = 0;

if (nGridY > 0)
Gdi.iGridY = iLoop;
else
Gdi.iGridY = 0;

pGdiNode = Add_Gdi(pGdiNodeGdi);
}
}

if (nGridX > 0)
iWidthX = iWidth/nGridX;
else
iWidthX = iWidth;

if (nGridY > 0)
iHeightY = iHeight/nGridY;
else
iHeightY = iHeight;
}

// 装入Winsock然后连接服务器
int LoadWinsock(HWND hWndchar *szIP)
{
WSADATA wsd;
DWORD dwLen;
int nRetnZero;
LPBYTE pBuf;
WSAPROTOCOL_INFO Protocol;
char szString[81];
char szMessage[81];

if (WSAStartup(0x202&wsd) != 0)
{
MessageBox(NULL“hehe““Client Socket Error“MB_OK);
return 1;
}

dwLen = 0;
nRet = WSAEnumProtocols(NULLNULL&dwLen);
if (nRet == SOCKET_ERROR)
{
if (WSAGetLastError() != WSAENOBUFS)
return 1;
}

pBuf = malloc(dwLen);

nRet = SelectProtocols(SETFLAGSNOTSETFLAGS(LPWSAPROTOCOL_INFO)pBuf&dwLen&Protocol);

free(pBuf);

sClient = WSASocket(AF_INETSOCK_STREAMIPPROTO_IPNULL0SOCK_STREAM);
if (sClient == INVALID_SOCKET)
return 1;

nZero = 0;
setsockopt(sClientSOL_SOCKETSO_RCVBUF(char *)&nZerosizeof(nZero));

server.sin_family = AF_INET;
server.sin_port = htons(port);
server.sin_addr.s_addr = inet_addr(szIP);

if (connect(sClient(struct sockaddr *)&serversizeof(server)) == SOCKET_ERROR)
{
me

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         52  2000-03-09 16:14  远程控制\Client\RemoteControlClient\afiedt.buf

     文件      15081  2003-07-10 16:55  远程控制\Client\RemoteControlClient\client.c

     文件        688  2003-07-10 14:11  远程控制\Client\RemoteControlClient\client.h

     文件       5497  2000-05-01 08:46  远程控制\Client\RemoteControlClient\ClientWindow.001

     文件       5803  2003-07-09 17:45  远程控制\Client\RemoteControlClient\ClientWindow.dsp

     文件        547  2000-05-01 13:04  远程控制\Client\RemoteControlClient\ClientWindow.dsw

     文件       7290  2000-01-18 09:19  远程控制\Client\RemoteControlClient\ClientWindow.mak

     文件     254976  2009-11-02 15:58  远程控制\Client\RemoteControlClient\ClientWindow.ncb

     文件      60928  2009-11-02 15:58  远程控制\Client\RemoteControlClient\ClientWindow.opt

     文件       3331  2009-11-02 15:58  远程控制\Client\RemoteControlClient\ClientWindow.plg

     文件        781  2003-07-10 15:45  远程控制\Client\RemoteControlClient\ColorMode.cpp

     文件        391  2003-07-10 15:46  远程控制\Client\RemoteControlClient\ColorMode.h

     文件        600  2003-07-10 15:47  远程控制\Client\RemoteControlClient\Command.c

     文件        350  2003-07-10 15:45  远程控制\Client\RemoteControlClient\Command.h

     文件       1709  2003-07-11 13:26  远程控制\Client\RemoteControlClient\Compression.cpp

     文件        389  2003-07-10 15:46  远程控制\Client\RemoteControlClient\Compression.h

     文件      27866  2009-11-02 15:57  远程控制\Client\RemoteControlClient\Debug\client.obj

     文件          0  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\client.sbr

     文件     118922  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ClientWindow.abc

     文件    2278400  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ClientWindow.bsc

     文件      91198  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ClientWindow.map

     文件    2334112  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ClientWindow.pch

     文件     500736  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ClientWindow.pdb

     文件      11457  2009-11-02 15:57  远程控制\Client\RemoteControlClient\Debug\ColorMode.obj

     文件          0  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\ColorMode.sbr

     文件       9429  2009-11-02 15:57  远程控制\Client\RemoteControlClient\Debug\Command.obj

     文件          0  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\Command.sbr

     文件      11955  2009-11-02 15:57  远程控制\Client\RemoteControlClient\Debug\Compression.obj

     文件          0  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\Compression.sbr

     文件       9590  2009-11-02 15:58  远程控制\Client\RemoteControlClient\Debug\Gdi.obj

............此处省略106个文件信息

评论

共有 条评论