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

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

?? sockspacket.cpp

?? 用VC編寫的HTTP下載的win32程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////////////
//	Copyright (C) 2000-2001 Softelf Inc. All rights reserved.
////////////////////////////////////////////////////////////////////////////////
//
//	Author	: Telan
//	Date	: 2000-10-05
//	Purpose	: Implement a SOCKS functions' lib that support socks4,socks4a,socks5
//	History	: 
//		1.0	: 2000-10-04 - Basic Functions Lib
//		1.1	: 2000-10-05 - Fix several bugs in Pack&UnPack
//
//	Mailto	: telan@263.net ( Bugs' Report or Comments )
//	Notes	: This source code may be used in any form in any way you desire. It is
//			  provided "as is" without express or implied warranty.Use it at your own
//			  risk! The author accepts no liability for any damage/loss of business 
//			  that this product may cause.
//
////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TE_Socket.h"
#include "SocksPacket.h"

////////////////////////////////////////////////////////////////////
//
//		功能: 接收并解包
//		參數: 
//				pBSD		-- BufSocketData數據結構
//				pPacket		-- 數據包指針(用來保存接收數據包)
//				nPacketType	-- 包類型
//				dwTimeOut	-- 接收超時(缺省為SOP_RECV_TIMEOUT)	
//		返回: 
//				 0	---	成功 (SOCKET_SUCCESS)
//				-1	---	失敗 (SOCKET_ERROR)	
//
////////////////////////////////////////////////////////////////////
int SOP_RecvPacket(PBSD pBSD,PSOCKSREPPACKET pPacket,UINT nPacketType,DWORD dwTimeout /*= SOP_RECV_TIMEOUT*/)
{
	int		nRecv,n,nCount;
	WORD	wData	= 0;
	DWORD	dwData	= 0;
	char*	pszData	= NULL;

	//清空數據
	ZeroMemory(pPacket,sizeof(SOCKSREQPACKET));

	//接收數據
	switch( nPacketType )
	{
	case PACKET_SOCKS4REP:
		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks4Rep.bVer = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks4Rep.bRep = (BYTE)nRecv;
		
		wData = 0;
		for( n = 0; n < 2; n++)
		{
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);
		
			wData |= ( ((WORD)nRecv) << (8*n) );
		}
		pPacket->socks4Rep.wDestPort =ntohs(wData);

		dwData = 0;
		for( n = 0; n < 4; n++)
		{
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);

			dwData |= ( ((DWORD)nRecv)<<(8*(3-n)) );
		}
		pPacket->socks4Rep.dwDestIP = ntohl(dwData);
		break;
	case PACKET_SOCKS4AREP:
		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks4aRep.bVer = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks4aRep.bRep = (BYTE)nRecv;
		
		wData = 0;
		for( n = 0; n < 2; n++)
		{
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);
		
			wData |= ( ((WORD)nRecv) << (8*(n)) );
		}
		pPacket->socks4aRep.wDestPort = ntohs(wData);

		dwData = 0;
		for( n = 0; n < 4; n++)
		{
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);

			dwData |= ( ((DWORD)nRecv)<<(8*(3-n)) );
		}
		pPacket->socks4aRep.dwDestIP = ntohl(dwData);
		break;
	case PACKET_SOCKS5AUTHREP:
		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5AuthRep.bVer = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		
		pPacket->socks5AuthRep.bAuth = (BYTE)nRecv;
		break;
	case PACKET_SOCKS5AUTHPASSWDREP:
		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5AuthPasswdRep.bVer = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		
		pPacket->socks5AuthPasswdRep.bStatus = (BYTE)nRecv;
		break;
	case PACKET_SOCKS5REP:
		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5Rep.bVer = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5Rep.bRep = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5Rep.bRsv = (BYTE)nRecv;

		nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
		if( nRecv == TE_EOF )
			return (SOCKET_ERROR);
		pPacket->socks5Rep.bAtyp = (BYTE)nRecv;

		if( pPacket->socks5Rep.bRep != REP5_SUCCESS )
		{
			pPacket->socks5Rep.pszBindAddr = NULL;
			pPacket->socks5Rep.wBindPort   = WORD_NULL;
			break;
		}
		
		switch( pPacket->socks5Rep.bAtyp )
		{
		case ATYP_IPV4ADDR:
		/*
			dwData = 0;
			for( n = 0; n < 4; n++)
			{
				nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
				if( nRecv == TE_EOF )
					return (SOCKET_ERROR);

				dwData |= ( ((DWORD)nRecv)<<(8*(3-n)) );
			}
			dwData = ntohl( dwData );

			pszData = (char *)malloc(5);
			if(pszData == NULL)
				return (SOCKET_ERROR);
			n = 0;
			pszData[n++] = (char)( (dwData>>24) &0x000000ff); 
			pszData[n++] = (char)( (dwData>>16) &0x000000ff); 
			pszData[n++] = (char)( (dwData>>8 ) &0x000000ff); 
			pszData[n++] = (char)( dwData &0x000000ff); 
			pszData[n]	 = '\0';
			*/
			pszData = (char *)malloc(5);
			if(pszData == NULL)
				return (SOCKET_ERROR);
			for( n = 0; n < 4; n++)
			{
				nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
				if( nRecv == TE_EOF )
					return (SOCKET_ERROR);

				pszData[n] = (char)nRecv;
			}
			pszData[n] = '\0';
			pPacket->socks5Rep.pszBindAddr = pszData;
			break;
		case ATYP_IPV6ADDR:
			
			pszData = (char *)malloc(17);
			if(pszData == NULL)
				return (SOCKET_ERROR);
			for( n = 0; n < 16; n++)
			{
				nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
				if( nRecv == TE_EOF )
					return (SOCKET_ERROR);

				pszData[n] = (char)nRecv;
			}
			pszData[n] = '\0';
			pPacket->socks5Rep.pszBindAddr = pszData;
			break;
		case ATYP_HOSTNAME:
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);
			
			nCount = nRecv;
			pszData = (char *)malloc(nCount+1 );
			if(pszData == NULL)
				return (SOCKET_ERROR);
			for( n = 0; n < nCount; n++)
			{
				nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
				if( nRecv == TE_EOF )
					return (SOCKET_ERROR);

				pszData[n] = (char)nRecv;
			}
			pszData[n] = '\0';
			pPacket->socks5Rep.pszBindAddr = pszData;
			break;
		default:
			pPacket->socks5Rep.pszBindAddr = NULL;
			break;
		}

		wData = 0;
		for( n = 0; n < 2; n++)
		{
			nRecv = TE_BSocketGetChar(pBSD,dwTimeout);
			if( nRecv == TE_EOF )
				return (SOCKET_ERROR);
		
			wData |= ( ((WORD)nRecv) << (8*n) );
		}
		pPacket->socks5Rep.wBindPort = ntohs(wData);
		break;
	default:
		break;
	}
	return (SOCKET_SUCCESS);
}		

////////////////////////////////////////////////////////////////////
//
//		功能: 計算包的尺寸
//		參數: 
//				pPacket		-- 數據包指針
//				nPacketType	-- PACKET類型
//		返回: 數據包長度
//
////////////////////////////////////////////////////////////////////
int SOP_PacketSize(PSOCKSREQPACKET pPacket,UINT nPacketType)
{
	int nLen = 0;
	switch( nPacketType )
	{
	case PACKET_SOCKS4REQ:
		nLen = 9 + strlen(pPacket->socks4Req.pszUserID);
		break;
	case PACKET_SOCKS4AREQ:
		nLen = 10 + strlen(pPacket->socks4aReq.pszUserID) + strlen(pPacket->socks4aReq.pszDestHostName);
		break;
	case PACKET_SOCKS5AUTHREQ:
		nLen = 2 + (BYTE)pPacket->socks5AuthReq.bNAuth;
		break;
	case PACKET_SOCKS5AUTHPASSWDREQ:
		nLen = 3 + strlen(pPacket->socks5AuthPasswdReq.pszUserName) + strlen(pPacket->socks5AuthPasswdReq.pszPasswd);
		break;
	case PACKET_SOCKS5REQ:
		nLen = 6;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产三级| 国产日韩av一区二区| 精品处破学生在线二十三| 国产精品伦一区二区三级视频| 亚洲小说欧美激情另类| 91传媒视频在线播放| 精品精品国产高清一毛片一天堂| 亚洲精品视频在线观看免费| 国产真实乱子伦精品视频| 欧美无砖专区一中文字| 中文字幕欧美一| 国产精选一区二区三区| 日韩欧美一级二级三级久久久| 一区二区三区中文字幕精品精品 | 欧美熟乱第一页| 国产精品美女一区二区| 激情综合色综合久久综合| 在线成人av网站| 亚洲h精品动漫在线观看| 99国产欧美久久久精品| 欧美国产日韩一二三区| 国产在线一区二区综合免费视频| 在线综合+亚洲+欧美中文字幕| 亚洲精品乱码久久久久久| 国产91精品一区二区麻豆网站 | 日本道免费精品一区二区三区| 久久久精品日韩欧美| 久草中文综合在线| 日韩欧美电影一二三| 美女视频免费一区| 欧美一区二区三级| 麻豆精品国产91久久久久久| 欧美一区二区视频免费观看| 日韩成人一区二区三区在线观看| 欧美性色黄大片| 亚洲高清视频中文字幕| 欧美高清www午色夜在线视频| 亚洲一区二区偷拍精品| 欧美日韩你懂得| 污片在线观看一区二区| 这里是久久伊人| 久久精品999| 久久久久久麻豆| 成人精品gif动图一区| 国产精品传媒视频| 91黄视频在线| 视频一区视频二区中文| 日韩欧美久久久| 国产精品一品二品| |精品福利一区二区三区| 色综合久久66| 婷婷开心激情综合| 精品久久久久香蕉网| 国产精品12区| 一区二区三区四区视频精品免费| 欧美亚洲另类激情小说| 美国毛片一区二区| 国产精品视频一二三区| 欧美亚日韩国产aⅴ精品中极品| 午夜欧美视频在线观看| 久久午夜老司机| 色综合久久中文综合久久牛| 三级影片在线观看欧美日韩一区二区| 日韩一区二区三区三四区视频在线观看 | 粉嫩aⅴ一区二区三区四区| 中文字幕一区二区不卡| 制服丝袜亚洲色图| 成人午夜在线视频| 亚洲高清中文字幕| 久久精品视频一区二区| 91久久精品一区二区三区| 蜜臀av在线播放一区二区三区| 国产欧美日韩另类一区| 欧美日韩精品一区二区| 国产高清不卡二三区| 午夜精品一区在线观看| 久久久久久久综合色一本| 欧美丝袜丝交足nylons图片| 狠狠色丁香婷婷综合久久片| 亚洲综合在线电影| 国产亚洲欧美在线| 4438x成人网最大色成网站| 本田岬高潮一区二区三区| 免费美女久久99| 亚洲一区在线免费观看| 国产亚洲视频系列| 日韩三级视频在线看| 色噜噜久久综合| 成人三级伦理片| 另类调教123区| 亚洲二区在线观看| 亚洲天堂a在线| 国产亚洲自拍一区| 日韩午夜精品电影| 欧美天堂亚洲电影院在线播放| 粉嫩av一区二区三区| 激情综合网激情| 久久电影国产免费久久电影| 亚洲国产欧美日韩另类综合 | 成人国产在线观看| 国产一区二区三区电影在线观看| 天天影视色香欲综合网老头| 综合欧美亚洲日本| 国产精品久久久久久久久图文区| 精品福利在线导航| 精品对白一区国产伦| 日韩一区二区麻豆国产| 欧美日韩国产高清一区二区 | 亚洲综合久久av| 亚洲男人天堂av网| 亚洲精品视频一区| 亚洲另类春色校园小说| 亚洲国产高清在线| 欧美国产97人人爽人人喊| 国产亚洲欧美中文| 国产婷婷色一区二区三区四区| 久久影院视频免费| 国产亚洲一区二区三区在线观看 | 欧美日韩一级大片网址| 欧美午夜电影在线播放| 欧美日韩国产一级片| 欧美视频中文一区二区三区在线观看 | 欧美aaa在线| 狠狠色丁香婷婷综合久久片| 国产麻豆午夜三级精品| 国产成人免费在线视频| 成人午夜电影久久影院| 91小视频在线| 欧美性受xxxx黑人xyx性爽| 欧美图片一区二区三区| 欧美一卡二卡在线| 久久久久久久久久久黄色| 中文字幕成人在线观看| 一区二区三区国产精华| 日韩专区中文字幕一区二区| 久国产精品韩国三级视频| 成人黄色777网| 欧美午夜精品电影| 精品少妇一区二区三区免费观看 | 国产精品538一区二区在线| bt7086福利一区国产| 在线看日本不卡| 日韩欧美一级二级三级| 国产精品电影一区二区| 亚洲线精品一区二区三区八戒| 麻豆一区二区99久久久久| 国产成人av一区二区三区在线| 色综合咪咪久久| 欧美tickling挠脚心丨vk| 一区二区中文视频| 免费观看91视频大全| www.av精品| 日韩欧美亚洲另类制服综合在线 | 亚洲一区免费观看| 六月婷婷色综合| 91在线观看成人| 欧美大片顶级少妇| 亚洲综合丁香婷婷六月香| 韩日精品视频一区| 欧美三级电影网站| 久久精品男人天堂av| 午夜精品福利一区二区蜜股av| 国产精品自拍av| 欧美日韩精品一区二区三区蜜桃| 日本一区二区三区国色天香 | 国产乱码精品一品二品| 91久久线看在观草草青青| 久久蜜桃av一区二区天堂| 亚洲国产va精品久久久不卡综合 | 日本一区二区三区在线不卡| 天天综合网 天天综合色| 91网站视频在线观看| 欧美精品一区二区三区视频| 亚洲在线一区二区三区| 成人动漫av在线| 26uuu精品一区二区| 三级一区在线视频先锋| 91极品视觉盛宴| 亚洲欧美日韩人成在线播放| 国产精品一区二区三区四区| 日韩一区二区在线观看视频| 一区二区三区在线观看国产| 成人中文字幕合集| 久久亚洲精精品中文字幕早川悠里 | 欧美bbbbb| 欧美精品丝袜中出| 一区二区三区成人| 一本一道久久a久久精品综合蜜臀| 国产香蕉久久精品综合网| 精品在线亚洲视频| 日韩三级精品电影久久久| 日日噜噜夜夜狠狠视频欧美人| 欧日韩精品视频| 亚洲一区二区三区自拍| 91国偷自产一区二区三区成为亚洲经典 | 9191成人精品久久| 五月婷婷综合激情| 欧美三级中文字幕在线观看| 一区二区三区不卡视频| 色呦呦国产精品|