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

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

?? peerfileoperator.cpp

?? 點對點傳輸通訊源代碼
?? CPP
字號:
// PeerFileOperator.cpp: implementation of the PeerFileOperator.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PeerFileOperator.h"
#include "command.h"
#include "peersocket.h"
#include "shellapi.h"

////////得到驅動器名稱//////////////
bool PeerFileGetDriver(SOCKET s,WSAEVENT hEvent)
{
	DWORD retLen;
	DRIVER driver;

	///////////發送////////////////
	char sdriver[10];
	int count=0;
	int maskdriver;
	int drivertype;
	if(!(maskdriver=GetLogicalDrives()))
		return false;
	for(int i=0;i<26;i++)
	{
		if(!(maskdriver>>i)) //得到所有驅動器號
			break;
		if(maskdriver>>i&1)
		{
			sdriver[0]=i+'A';
			sdriver[1]=':';
			sdriver[2]=0;
			drivertype=GetDriveType(sdriver);
			strcpy(driver.driver,sdriver);
			driver.drivertype=drivertype;
			PeerSendDataS(s,(char*)&driver,sizeof(driver),&retLen,
					 hEvent,SENDRECV_TIMEOUT);
		}
	}
	return true;
}
//////得到文件及其屬性
bool PeerFileGetAttrib(SOCKET s,WSAEVENT hEvent)
{
	DWORD retLen;
	HANDLE hFile;
	FILEATTRIB attrib;
	WIN32_FIND_DATA WFD;
	//得到需返回那個目錄的文件信息
	if(!PeerRecvDataS(s,(char*)&attrib,sizeof(attrib),&retLen,
					 hEvent,SENDRECV_TIMEOUT))
					 return false;

	//查找第一個文件
	if((hFile=FindFirstFile(attrib.filename,&WFD))==INVALID_HANDLE_VALUE)
		return false;
	SHFILEINFO shfi;
	DWORD len;
	char slen[32];
	char stime[32];
	SYSTEMTIME systime;
	FILETIME localtime;
	memset(&shfi,0,sizeof(shfi));
	//得到文件的相關信息
	SHGetFileInfo(WFD.cFileName, 
			FILE_ATTRIBUTE_NORMAL,
			&shfi, sizeof(shfi),
			SHGFI_ICON|SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME );
	//寫入文件信息結構
	strcpy(attrib.filename,WFD.cFileName);
	strcpy(attrib.attrib,WFD.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY?"文件夾":shfi.szTypeName);
	len=(WFD.nFileSizeHigh*MAXDWORD+WFD.nFileSizeLow)/1024;
	sprintf(slen,"%dK",len);
	strcpy(attrib.len,WFD.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY?"":slen);
	//轉化格林時間到本地時間
	FileTimeToLocalFileTime(&WFD.ftLastWriteTime,&localtime);
	FileTimeToSystemTime(&localtime,&systime);
	sprintf(stime,"%4d-%02d-%02d %02d:%02d:%02d",
		systime.wYear,systime.wMonth,systime.wDay,systime.wHour,
		systime.wMinute,systime.wSecond);
	strcpy(attrib.time,stime);
	//發送第一個文件信息
	if(strcmp(WFD.cFileName,".")!=0&&
				strcmp(WFD.cFileName,"..")!=0)
		PeerSendDataS(s,(char*)&attrib,sizeof(attrib),&retLen,
					 hEvent,SENDRECV_TIMEOUT);
	while(hFile)
	{
		//查完所有信息
		if(FindNextFile(hFile,&WFD))
		{
			if(strcmp(WFD.cFileName,".")==0||
				strcmp(WFD.cFileName,"..")==0)
				continue;
			memset(&shfi,0,sizeof(shfi));
			SHGetFileInfo(WFD.cFileName, 
				FILE_ATTRIBUTE_NORMAL,
				&shfi, sizeof(shfi),
				SHGFI_ICON|SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME );
			strcpy(attrib.filename,WFD.cFileName);
			strcpy(attrib.attrib,WFD.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY?"文件夾":shfi.szTypeName);
			len=(WFD.nFileSizeHigh*MAXDWORD+WFD.nFileSizeLow)/1024;
			sprintf(slen,"%dK",len);
			strcpy(attrib.len,WFD.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY?"":slen);
			FileTimeToLocalFileTime(&WFD.ftLastWriteTime,&localtime);
			FileTimeToSystemTime(&localtime,&systime);
			sprintf(stime,"%4d-%02d-%02d %02d:%02d:%02d",
				systime.wYear,systime.wMonth,systime.wDay,systime.wHour,
				systime.wMinute,systime.wSecond);
			strcpy(attrib.time,stime);
			PeerSendDataS(s,(char*)&attrib,sizeof(attrib),&retLen,
					 hEvent,SENDRECV_TIMEOUT);
		}
		else
		{
			if(GetLastError()==ERROR_NO_MORE_FILES)
				break;
		}
	}
	FindClose(hFile);
	return true;
}

/////保存發送過來的文件///////////////////
bool PeerFileSave(SOCKET s,WSAEVENT hEvent)
{
	char buf[4096];
	bool iffalse=false;
	DWORD retLen;
	FILEINFO fi;
	while(1)
	{
		if(!PeerRecvDataS(s,(char*)&fi,sizeof(fi),&retLen,
						 hEvent,SENDRECV_TIMEOUT)||retLen!=sizeof(fi))
						 return false;
		FILE *fp;
		if(!(fp=fopen(fi.filename,"wb+")))
			return false;
		DWORD dwGetSize=0;
		while(dwGetSize<fi.filesize)
		{
			if(fi.filesize-dwGetSize>4096)
			{
				if(!PeerRecvDataS(s,buf,4096,&retLen,
							 hEvent,SENDRECV_TIMEOUT))
				{
					fclose(fp);
					DeleteFile(fi.filename);
					return false;
				}
				else
					if(fwrite(buf,sizeof(char),4096,fp)!=4096)
					{
						fclose(fp);
						DeleteFile(fi.filename);
						return false;
					}
					else
						dwGetSize+=4096;
			}
			else
			{
				if(!PeerRecvDataS(s,buf,fi.filesize-dwGetSize,&retLen,
							 hEvent,SENDRECV_TIMEOUT))
				{
					fclose(fp);
					DeleteFile(fi.filename);
					return false;
				}
				else
					if(fwrite(buf,sizeof(char),fi.filesize-dwGetSize,fp)!=fi.filesize-dwGetSize)
					{
						fclose(fp);
						DeleteFile(fi.filename);
						return false;
					}
					else
						dwGetSize+=fi.filesize-dwGetSize;
			}
		}
		fclose(fp);
	}
	return true;

}

/////////////發送文件到客戶端///////////////
bool PeerFileSend(SOCKET s,WSAEVENT hEvent)
{
	char buf[4096];
	DWORD retLen;
	FILEINFO fi;
	while(1)
	{
		if(!PeerRecvDataS(s,(char*)&fi,sizeof(fi),&retLen,
						 hEvent,SENDRECV_TIMEOUT)||retLen!=sizeof(fi))
						 return false;
		FILE *fp;
		if(!(fp=fopen(fi.filename,"rb")))
			return false;
		DWORD dwGetSize=0;
		if(fseek(fp,0l,SEEK_END))
		{
			fclose(fp);
			return false;
		}
		if((dwGetSize=ftell(fp))==-1)
		{
			fclose(fp);
			return false;
		}
		if(fseek(fp,0l,SEEK_SET))
		{
			fclose(fp);
			return false;
		}
		fi.filesize=dwGetSize;
		if(!PeerSendDataS(s,(char*)&fi,sizeof(fi),&retLen,hEvent))
		{
			fclose(fp);
			return false;
		}
		DWORD fcount;
		while((fcount=fread(buf,sizeof(char),4096,fp)))
		{
			if(!PeerSendDataS(s,buf,fcount,&retLen,hEvent,SENDRECV_TIMEOUT)||retLen!=fcount)
			{
				fclose(fp);
				return false;
			}
		}
		fclose(fp);
	}
	return true;
}
/////創建文件夾
bool PeerFileDirCreate(SOCKET s,WSAEVENT hEvent)
{
	DWORD retLen;
	FILEINFO fi;
	COMMAND com;
	if(!PeerRecvDataS(s,(char*)&fi,sizeof(fi),&retLen,
						 hEvent,SENDRECV_TIMEOUT)||retLen!=sizeof(fi))
						 return false;
	if(::CreateDirectory(fi.filename,NULL))
	{
		com.CommandID=PEER_CFM_OK;
	}
	else
	{
		com.CommandID=PEER_CFM_ERR;
	}
	PeerSendDataS(s,(char*)&com,sizeof(com),&retLen,
							 hEvent,SENDRECV_TIMEOUT);
	return true;

}
////////執行程序////////////
bool PeerFileExcute(SOCKET s,WSAEVENT hEvent)
{
	DWORD retLen;
	FILEINFO fi;
	if(!PeerRecvDataS(s,(char*)&fi,sizeof(fi),&retLen,
						 hEvent,SENDRECV_TIMEOUT)||retLen!=sizeof(fi))
						 return false;
	ShellExecute(NULL, "open", fi.filename, NULL,NULL, SW_SHOWNORMAL);
	return true;
	
}
/////////刪除文件或目錄//////////////
bool PeerFileDelete(SOCKET s,WSAEVENT hEvent)
{
	DWORD retLen;
	FILEINFO fi;
	COMMAND com;
	while(1)
	{
		if(!PeerRecvDataS(s,(char*)&fi,sizeof(fi),&retLen,
							 hEvent,SENDRECV_TIMEOUT)||retLen!=sizeof(fi))
							 return false;
		if(fi.dir)
		{
		  if(RemoveDirectory(fi.filename))
			 com.CommandID=PEER_CFM_OK;
		  else
			  com.CommandID=PEER_CFM_ERR;

		}
		else
		{
		  if(DeleteFile(fi.filename))
			  com.CommandID=PEER_CFM_OK;
		  else
			  com.CommandID=PEER_CFM_ERR;
		}
		PeerSendDataS(s,(char*)&com,sizeof(com),&retLen,
								 hEvent,SENDRECV_TIMEOUT);
	}
	return true;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av高清在线| www日韩大片| 久久影院视频免费| 亚洲人成小说网站色在线| 韩国毛片一区二区三区| 91啪九色porn原创视频在线观看| 日韩欧美国产一区二区三区| 亚洲精品第一国产综合野| 另类小说一区二区三区| 91久久人澡人人添人人爽欧美| 精品日韩99亚洲| 午夜精品免费在线| 91丨九色丨蝌蚪丨老版| 亚洲国产精品成人综合色在线婷婷| 日本免费在线视频不卡一不卡二| 97se亚洲国产综合自在线不卡| 国产欧美日韩中文久久| 国内精品第一页| 欧美成人性福生活免费看| 亚洲观看高清完整版在线观看| 成人av电影在线观看| 国产日韩欧美电影| 国内外精品视频| 精品久久国产字幕高潮| 日本不卡一二三区黄网| 制服丝袜成人动漫| 亚洲va韩国va欧美va| 欧美影院一区二区三区| 亚洲高清免费视频| 欧美艳星brazzers| 亚洲小说春色综合另类电影| 欧美综合视频在线观看| 亚洲精品自拍动漫在线| 色天天综合久久久久综合片| 亚洲狠狠丁香婷婷综合久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 中文字幕一区二区三区在线播放| 成人午夜又粗又硬又大| 国产精品久久久久久久久晋中| 成人午夜私人影院| ㊣最新国产の精品bt伙计久久| 99久久免费视频.com| 最新中文字幕一区二区三区| 色婷婷综合中文久久一本| 一区二区三区精密机械公司| 欧亚洲嫩模精品一区三区| 亚洲成av人片在线| 日韩区在线观看| 国产麻豆精品95视频| 亚洲国产成人一区二区三区| 色综合婷婷久久| 亚洲成人av在线电影| 日韩一级二级三级| 国产福利不卡视频| 亚洲三级在线免费观看| 欧美午夜精品理论片a级按摩| 亚洲成人手机在线| 国产日韩欧美激情| 91久久免费观看| 精品一区二区综合| 亚洲欧洲国产日本综合| 欧美午夜电影网| 国产一区二区三区四区五区入口 | 欧美经典一区二区三区| 99视频国产精品| 婷婷久久综合九色综合伊人色| 91精品国产综合久久久久久| 成人永久免费视频| 亚洲最大成人网4388xx| 久久综合资源网| 91香蕉国产在线观看软件| 丝袜美腿亚洲综合| 国产欧美视频一区二区| 欧美日韩精品一区二区三区蜜桃| 狠狠色综合色综合网络| 亚洲婷婷国产精品电影人久久| 欧美人妇做爰xxxⅹ性高电影 | 色婷婷精品久久二区二区蜜臂av| 亚洲国产成人av好男人在线观看| 久久五月婷婷丁香社区| 欧洲精品在线观看| 成人精品视频网站| 精品一区二区综合| 一区二区三区在线免费观看| 国产日韩高清在线| 日韩一级在线观看| 色一区在线观看| 东方aⅴ免费观看久久av| 日韩电影在线观看一区| 亚洲丝袜制服诱惑| 26uuu精品一区二区| 在线91免费看| 色就色 综合激情| 99久久777色| 成人18视频日本| 激情六月婷婷久久| 日本成人中文字幕在线视频| 亚洲精品久久久蜜桃| 中文字幕欧美激情一区| 精品女同一区二区| 91精品国产综合久久国产大片 | 午夜精品福利久久久| 亚洲精品亚洲人成人网 | 天天影视涩香欲综合网| 亚洲美女区一区| 国产精品午夜免费| 国产日韩欧美a| 国产亚洲人成网站| 久久久三级国产网站| 精品久久久久久久久久久久久久久| 在线播放欧美女士性生活| 在线精品视频一区二区三四| 一本一本久久a久久精品综合麻豆| 国产精品中文有码| 国产一区二区0| 国产精品一级二级三级| 韩国三级在线一区| 国产露脸91国语对白| 国产一区二区三区蝌蚪| 国产伦精品一区二区三区视频青涩| 蜜臀av一区二区三区| 日本亚洲最大的色成网站www| 免费成人深夜小野草| 久久99久久久欧美国产| 久久99九九99精品| 国产 日韩 欧美大片| 成av人片一区二区| 欧美性做爰猛烈叫床潮| 8x8x8国产精品| 日韩视频免费直播| 欧美极品xxx| 一区二区三区在线视频观看58| 午夜欧美大尺度福利影院在线看 | 日韩亚洲欧美一区| 26uuu亚洲| 亚洲男同性视频| 午夜电影久久久| 久久99九九99精品| 国产91精品在线观看| 色综合久久久久久久| 欧美一区二区三区小说| 久久精品夜色噜噜亚洲aⅴ| 亚洲特黄一级片| 青青国产91久久久久久| 国产精品一区免费视频| 色呦呦网站一区| 日韩精品一区二区三区swag| 国产精品美女久久久久久久 | 国产一区视频在线看| 成人永久免费视频| 欧美精品v日韩精品v韩国精品v| 欧美成人vr18sexvr| 日韩美女视频一区二区 | 精品国产一区二区三区不卡| 中文字幕乱码一区二区免费| 亚洲成a人片在线不卡一二三区 | 久久爱另类一区二区小说| 99re成人在线| 日韩精品自拍偷拍| 亚洲免费视频成人| 国产一区啦啦啦在线观看| 色综合天天做天天爱| 久久免费电影网| 亚洲第一在线综合网站| 成人毛片视频在线观看| 日韩欧美成人一区二区| 亚洲免费观看在线视频| 国产精品夜夜嗨| 日韩精品一区二区三区三区免费| 亚洲黄色av一区| 成人涩涩免费视频| 欧美sm极限捆绑bd| 日韩黄色在线观看| 色一区在线观看| 国产精品二区一区二区aⅴ污介绍| 日本欧美大码aⅴ在线播放| 在线观看亚洲精品视频| 国产精品美女久久久久aⅴ | 麻豆精品在线播放| 欧美在线三级电影| 亚洲啪啪综合av一区二区三区| 国产精品一色哟哟哟| 国产精品一色哟哟哟| 久久婷婷成人综合色| 亚洲欧美日韩国产成人精品影院| 国内精品视频666| 欧美一区二区三区视频在线观看 | 色呦呦国产精品| 国产精品理伦片| 成人午夜精品在线| 26uuu亚洲婷婷狠狠天堂| 美洲天堂一区二卡三卡四卡视频| 在线观看中文字幕不卡| 亚洲精品视频一区二区| 91在线云播放| 亚洲欧洲日韩综合一区二区| 高清国产午夜精品久久久久久| 久久天堂av综合合色蜜桃网| 久久99国内精品| 久久综合一区二区|