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

📄 test.cpp

📁 国外网站上下的
💻 CPP
字号:
/*#include <WinSock2.h>
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h>
#pragma comment(lib,"ws2_32.lib")

int parse_ip_string(long proxyindex,char *proxyip,long proxyport,char *url, DWORD *lpServerIP, DWORD *lpServerPort, char *lpHost, char *suburl)
{
	////202.97.149.167
	// google's Ip address is http://72.14.207.99/
	if(!url || !strlen(url)) return -1;
	if(!lpServerIP || !lpHost || !lpServerPort || !suburl) return -1;

	char lpURL[1024];
	strcpy(lpURL,url);
	DWORD dwServerPort, dwServerIP;
	char *pTmp,*pTmp2,*pTmp3;
	//printf("%s\n",lpURL);
	if (strnicmp(lpURL,"http://",7)) 
		return -1; //此处判断URL前缀是否为"http://",如果不是,则返回错误
	printf("RUNNING here!\r\n");
	pTmp=lpURL+7;
	printf("pTemp = %s\n", pTmp);
	while(*pTmp && *pTmp!='@' && *pTmp!='/') {
		pTmp++;
		//printf("%s\n", pTmp);
	}
	printf("%s\n", pTmp);
	if (*pTmp==NULL) return -1;
	if (*pTmp=='@') pTmp++;
	else pTmp=lpURL+7;
	pTmp2=pTmp;
	while(*pTmp2 && *pTmp2!=':' && *pTmp2!='/'){
		pTmp2++;
	}
	printf("%s\n", pTmp2);
	if (*pTmp2==NULL){
		printf("*pTemp2==NULL\n");
		return -1;
	}
	char ch=*pTmp2;
	*pTmp2=NULL;

	strcpy(lpHost, pTmp);
	printf("lpHost = %s\n", lpHost);

	if(proxyindex>=0)
		dwServerIP=inet_addr(proxyip);//hena,proxy,2008.02.28
	else
		dwServerIP=inet_addr(pTmp);

	if (dwServerIP==INADDR_NONE)
	{
		struct hostent FAR * phost;
		phost=gethostbyname(pTmp);
		if (phost)
			dwServerIP=(unsigned long)(*(unsigned long*)*phost->h_addr_list);

	}
	dwServerIP=htonl(dwServerIP);
	*pTmp2=ch;
	if (ch==':')
	{
		printf("I am here!\n");
		printf("%s\n", pTmp2);
		pTmp3=pTmp2+1;
		printf("%s\n", pTmp3);
		if (*pTmp3 =='/'){
			dwServerPort = 80;
			goto label;
		}
		while(*pTmp3 && *pTmp3!='/') pTmp3++;
		if (*pTmp3==NULL) return -1;
		*pTmp3=NULL;
		dwServerPort=atoi(pTmp2+1);
		printf("%d\n", atoi(pTmp2+1));
		*pTmp3='/';
label:
		pTmp2=pTmp3;
	}
	else dwServerPort=80;

	printf("dwServerPort=%d", dwServerPort);
	if(proxyindex>=0)
		dwServerPort=proxyport;//hena,proxy,2008.02.28
	*lpServerIP = dwServerIP;
	*lpServerPort = dwServerPort;
	strcpy(suburl, pTmp2);
	printf("suburl == %s\n", pTmp2);
	return 0;
}
/*int main() { 
	char *addr = "http://www.google.com:/index.html";
	DWORD tmp_ip = 100;
	DWORD tmp_port =80;
	DWORD* server_ip, *server_port;
	server_ip = & tmp_ip;
	server_port =& tmp_port;
	//*server_port = 1000;
	//*server_ip = 100;
	char * myhost = new char[1024];
	char * suburl = new char[1024];
	parse_ip_string(-1, "", 0, addr, server_ip, server_port, myhost, suburl);
	//printf("%s\n",addr);
	//printf("%d\n", server_ip);
	//printf("%d\n", server_port);
	//printf("%s\n", myhost);
	//printf("%s\n", suburl);
		char str[]="<"; 
		int x; 
		sscanf(str,"%x",&x); 
		printf("%x",x); 

	return 0;
}

void flush(FILE *stream);
int main(void){
	FILE *stream;
	char *msg = "This is a test!";
	strstr(msg,"is");
	/* create a file */
	//stream = fopen("DUMMY.bin", "wb");
	/* write some data to the file */
	//fwrite(msg, 4, 1, stream);
	//system("cls");;
	//printf("Press any key to flush DUMMY.FIL:");
	//getch();
	/* flush the data to DUMMY.FIL without closing it */
	//flush(stream);
	/*printf(msg);
	printf("\nFile was flushed, Press any key to quit:");
	getch();
	unsigned short ch = 0x7c;
	printf("%c\n",ch);
	printf("%x\n", '|');
	return 0;
}

void flush(FILE *stream){
	int duphandle;
	/* flush the stream's internal buffer */
	//fflush(stream);
	/* make a duplicate file handle */
	//duphandle = dup(fileno(stream));
	/* close the duplicate handle to flush the DOS buffer*/
	//close(duphandle);
//}

#include  <stdio.h> 
#include  <winsock2.h>  /*winsock库头文件*/
#include  <windows.h> 
#pragma comment(lib,"WS2_32.lib")  //连接winsock库文件
int main()
{ 
	WSADATA stWsaData = {0};
	SOCKET hSocket = 0;
	sockaddr_in stRemoteAddr = {0};
	char cSendData[4096] = {0};  //发送数据缓冲区
	char cRecvData[102400] = {0};  //接收数据缓冲区
	int nRetBytes = 0;

	::WSAStartup(MAKEWORD(2,0),&stWsaData);  //初始化winsock库

	hSocket = ::socket(AF_INET,SOCK_STREAM,0);  //创建TCP套接字
	if(hSocket == INVALID_SOCKET)
		return 0;

	stRemoteAddr.sin_family = AF_INET;  //填充sockaddr_in结构
	//64.233.189.104为ping www.google.com得到的IP,暂时懒得写转换IP函数了
	stRemoteAddr.sin_addr.S_un.S_addr = inet_addr("64.233.189.104"); 
	stRemoteAddr.sin_port = htons(80);

	if(::connect(hSocket,(sockaddr *)&stRemoteAddr,sizeof stRemoteAddr) == -1)  //连接到服务器
	{
			::closesocket(hSocket);  //关闭TCP套接字
			::WSACleanup();  //释放winsock库
			return 0;
	}

	//构造HTTP请求数据包的请求头
	strcpy(cSendData,"POST /translate_t?langpair=en|zh-CN HTTP/1.1\r\n"); 
	strcat(cSendData,"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/QVOD, */*\r\n"); 
	strcat(cSendData,"Referer: http://www.google.cn/language_tools\r\n"); 
	strcat(cSendData,"Accept-Language: zh-cn\r\n"); 
	strcat(cSendData,"Content-Type: application/x-www-form-urlencoded\r\n"); 
	//strcat(cSendData,"Accept-Encoding: gzip , deflate\r\n"); 
	strcat(cSendData,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)\r\n"); 
	strcat(cSendData,"Host: translate.google.com\r\n"); 
	strcat(cSendData,"Content-Length: 46\r\n");
	strcat(cSendData,"Connection: Keep-Alive\r\n"); 
	strcat(cSendData,"cache-Control: no-cache\r\n"); 
	//strcat(cSendData,"Cookie: __utmc=195145449; __utma=195145449.421253565.1205461371.1205592024.1205592348.11; __utmz=195145449.1205585337.9.8.utmccn=(referral)|utmcsr=hao123.com|utmcct=/ss/fy.htm|utmcmd=referral; __utmb=195145449\r\n"); 

	//请求头与用户数据段之间的分隔行
	strcat(cSendData,"\r\n");

	//构造HTTP请求数据包的用户数据段
	strcat(cSendData,"hl=zh-CN&ie=UTF-8&text=bad&langpair=en%7Czh-CN");

	printf("HTTP协议请求头包格式: %s",cSendData);

	::send(hSocket,cSendData,sizeof cSendData,0);  //发送

	nRetBytes = ::recv(hSocket,cRecvData,sizeof cRecvData,0); 
	printf(" 总共收到了%d数据!",nRetBytes);

	//保存网页到文件(注意:返回的数据中包含HTTP响应头,而HTTP网页文件是不应该有这个的,应该去掉,这里我省略了)
	FILE * fp = fopen("翻译结果网页.html","wb");
	fwrite(cRecvData,nRetBytes,1,fp); 
	fclose(fp); 

	::closesocket(hSocket);  //关闭TCP套接字
	::WSACleanup();  //释放winsock库
	return 0; 
}

⌨️ 快捷键说明

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