資源簡介
實現遠程控制。分客戶端和服務器端。可實時地監控和操縱遠程機器且清晰度較高。

代碼片段和文件信息
//??從服務器端接收桌面屏幕
#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? {
for?(jLoop?=?0;jLoop? {
Gdi.iGridX?=?iLoop;
Gdi.iGridY?=?jLoop;
pGdiNode?=?Add_Gdi(pGdiNodeGdi);
}
}
}
else
{
nGrid?=?max(nGridXnGridY);
for?(iLoop?=?0;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個文件信息
- 上一篇:遺傳算法解決背包問題(C++版本)
- 下一篇:C語言源代碼精華集(大全)
評論
共有 條評論