C±à³ÌʵÏÖhttpÐÒé
´ó¼Ò¶¼ºÜÊìϤHTTPÐÒéµÄÓ¦Óã¬ÒòΪÿÌì¶¼ÔÚÍøÂçÉÏä¯ÀÀ×Ų»ÉÙ¶«Î÷£¬Ò²¶¼ÖªµÀÊÇHTTPÐÒéÊÇÏ൱¼òµ¥µÄ¡£Ã¿´ÎÓÃthunderÖ®ÀàµÄÏÂÔØÈí¼þÏÂÔØÍøÒ³£¬µ±Óõ½ÄǸö“ÓÃthunderÏÂÔØÈ«²¿Á´½Ó”ʱ×ܾõµÃºÜÉñÆæ¡£
ºóÀ´ÏëÏ룬ÆäʵҪʵÏÖÕâЩÏÂÔØ¹¦ÄÜÒ²²¢²»ÄÑ£¬Ö»Òª°´ÕÕHTTPÐÒé·¢ËÍrequest£¬È»ºó¶Ô½ÓÊÕµ½µÄÊý¾Ý½øÐзÖÎö£¬Èç¹ûÒ³ÃæÉÏ»¹ÓÐhrefÖ®ÀàµÄÁ´½ÓÖ¸Ïò±êÖ¾¾Í¿ÉÒÔ½øÐÐÉîÒ»²ãµÄÏÂÔØÁË¡£HTTPÐÒéĿǰÓõÄ×î¶àµÄÊÇ1.1°æ±¾£¬ÒªÈ«ÃæÍ¸³¹µØ¸ã¶®Ëü¾Í²Î¿¼RFC2616Îĵµ°É¡£ÎÒÊÇÅÂrfcÎĵµÁ˵Ä,Òª¿´×Ô¼ºÈ¥¿´°É^_^
Ô´´úÂëÈçÏ£º
/******* http¿Í»§¶Ë³ÌÐò httpclient.c ************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <unistd.h>
#include <netinet/in.h>
#include <limits.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <ctype.h>
//////////////////////////////httpclient.c ¿ªÊ¼///////////////////////////////////////////
/********************************************
¹¦ÄÜ£ºËÑË÷×Ö·û´®Ó񱧮ðµÄµÚÒ»¸öÆ¥Åä×Ö·û
********************************************/
char * Rstrchr(char * s, char x) {
int i = strlen(s);
if(!(*s)) return 0;
while(s[i-1]) if(strchr(s + (i - 1), x)) return (s + (i - 1)); else i--;
return 0;
}
/********************************************
¹¦ÄÜ£º°Ñ×Ö·û´®×ª»»ÎªÈ«Ð¡Ð´
********************************************/
void ToLowerCase(char * s) {
while(s && *s) {*s=tolower(*s);s++;}
}
/**************************************************************
¹¦ÄÜ£º´Ó×Ö·û´®srcÖзÖÎö³öÍøÕ¾µØÖ·ºÍ¶Ë¿Ú£¬²¢µÃµ½Óû§ÒªÏÂÔØµÄÎļþ
***************************************************************/
void GetHost(char * src, char * web, char * file, int * port) {
char * pA;
char * pB;
memset(web, 0, sizeof(web));
memset(file, 0, sizeof(file));
*port = 0;
if(!(*src)) return;
pA = src;
if(!strncmp(pA, "http://", strlen("http://"))) pA = src+strlen("http://");
else if(!strncmp(pA, "https://", strlen("https://"))) pA = sr
Ïà¹ØÎĵµ£º
½ñÌì±È½ÏÀÁ¶è£¬Ã»×öÌ⣬ֻÊÇ¿´ÁËÒ»µãÄDZ¾cÏÝÚåÓëȱÏÝ£¬ËµÊµ»°¶ÁÁ˲»¶àµ«Ã÷ÏÔÄܸоõ³öÕâÊÇÒ»±¾ºÃÊ飬¸Ð¾õ¶ÔÎÒÀ´Ëµ¸ÕºÃ£¬²»ÊÇ»ù´¡Ê飬µ«Ò²»ù±¾ÄÜ¿´¶®£¬¶øÇÒÄÜѧµ½ºÃ¶à¶«Î÷£¬µ«½ñÌìÖ»¿´ÁËÈýÕ£¬Ö÷ÒªÊÇϾüÆìÁË£¬囧£¬ÎÒÒ²Ö»ÄܰÑÎÒѧµ½µÄ×ܽáÏÂÀ´£¬Ñ§ÁË×ܱÈÒ»µã¶¼Ã»Ñ§ÒªºÃ£¬ÎÒÒ²Ö»ÄÜÕâÑù°²Î¿×Ô¼ºÁË¡£ ......
CSocketÅÉÉúÓÚCAsyncSocket, ËùÓÐÊ©ÖîÓÚÉϵIJÙ×÷½ÔΪͬ²½²Ù×÷¡£±ÈÈçConnnect,ReceiveµÈ¡£
ͬ²½²Ù×÷µÄÓŵãÊǼòµ¥Ò×Ó㬵«È±µãÒ²ÏÔ¶øÒ×¼û£¬Ð§ÂʵÍÏ£¬ÒòΪÄã±ØÐëµÈµ½Ò»¸ö²Ù×÷Íê³ÉÖ®ºó²ÅÄܽøÐÐÏÂÒ»¸ö²Ù×÷¡£
Èç¹ûÄãºÜ¹ØÐÄЧÂÊ£¬¾ÍÓ¦¸ÃÓÅÏÈʹÓÃCAsyncSocket¡£·´Ö®¾ÍÓÃCSocket¡£
ÏÂÃæ½«ËµÃ÷ÈçºÎÓÃCSocket´´½¨¼òµ¥µÄ·þÎñÆ÷ºÍ¿Í» ......
Êý×Öת×Ö·û´®£º
ÓÃC++µÄstreanstream:
#include <sstream>
#Include <string>
string num2str(double i)
...{
stringstream ss;
ss<<i;
return ss.str();
......
1) ʲôÊÇÔ¤±àÒ룬ºÎʱÐèÒªÔ¤±àÒ룺×ÜÊÇʹÓò»¾³£¸Ä¶¯µÄ´óÐÍ´úÂëÌå¡£
³ÌÐòÓɶà¸öÄ£¿é×é³É£¬ËùÓÐÄ£¿é¶¼Ê¹ÓÃÒ»×é±ê×¼µÄ°üº¬ÎļþºÍÏàͬµÄ±àÒëÑ¡Ïî¡£ÔÚÕâÖÖÇé¿öÏ£¬¿ÉÒÔ½«ËùÓаüº¬ÎļþÔ¤±àÒëΪһ¸öÔ¤±àÒëÍ·¡£
2) char * const p;
¡¡¡¡char const * p
¡¡¡¡const char *p ......
¸Õ¸ÕÍê³ÉµÄC¶ÁÈ¡ÎļþÒ»ÐÐÊý¾Ý£¬¿ÉÒÔ¶Á´óÁ¿Êý¾ÝµÄÐС£
/*
º¯Êý¹¦ÄÜ£º
¶ÁÈ¡ÎļþµÄÒ»ÐУ¬µ±¿ª±ÙÄÚ´æ²»¹»Ê±returnֵΪ-1,size»á¸ø³öÖÁÉÙÐèÒªµÄÄÚ´æ´óС£¬
returnֵΪ1ʱ±íʾ´ËʱÎļþ½áÊø£¬´Óbuffer,sizeµÃµ½×îºóÒ»ÐеÄÊý¾ÝºÍ´óС¡£
ÊäÈë²ÎÊý£º
stream£ºÎļþÁ÷
......