Linux Socket HTTPÇëÇóµÄÎÊÌ⣬¸ßÊÖ½ø£¡
СµÜ×î½üÐèÒªÒ»¸öÓÃsocket»ñÈ¡htmlÎĵµµÄ´úÂ룬µ«ÊÇÀÏÊDz»ÄÜ»ñÈ¡ÍêÕûµÄhtmlÔ´Âë¡£ÔÒò²»Ã÷£¬Íû¸ßÊÖÖ¸µã£¡
C/C++ code:
char *Http_GET(char *host,int port,char *data) //·¢ËÍGETÇëÇó
{
char response[204800],http_request[2048],*ret; //½ÓÊÕÊý¾ÝµÄ»º³åÇø´óС200k ÇëÇóÄÚÈÝ»º³åÇø2k
struct hostent *get_ip_addr; //ÍøÂçµØÖ·µÄÊý¾Ý½á¹¹hostent
get_ip_addr = gethostbyname(host); //µ÷ÓÃgethostbyname»ñÈ¡Ö÷»úipµØÖ·£¬·ÅÈë½á¹¹Ìâget_ip_addr
struct sockaddr_in remote_host; //ÍøÂçsocket½á¹¹remote_host
remote_host.sin_family = AF_INET; //ʹÓÃTCP£¯IP
remote_host.sin_port = htons(port); //Ô¶³Ì¶Ë¿Ú
memcpy(&remote_host.sin_addr.s_addr,get_ip_addr->h_addr_list[0],sizeof(get_ip_addr->h_addr_list[0]));//»ñȡһ¸öIP°ÑËû·ÅÈëremote_host.sin_addr.s_addrµÄÄÚ´æ¿Õ¼ä
int remote_std = socket(AF_INET,SOCK_STREAM,0); //´ò¿ªsocket£¬²¢¶¨ÒåÌ×½Ó×Öremote_std
connect(remote_std,(struct sockaddr*)&remote_host,sizeof(remote_host)); //Á¬½ÓÄ¿±êÖ÷»ú
memset(http_request,'\0',sizeof(http_request)); //½«ÇëÇóÄÚÈݵÄÄÚ´æ¿Õ¼äÖÿÕ
// sprintf(http_request,get_format,data); //дÈëhttpÇëÇóÄÚÈÝ
strcpy(http_request,"GET /FT_class.php?t_type=h2&id=361\r\nHost: 60.248.11.100\r\nConnection: Close\r\n\r\n");
send(remote_std,http_request,strlen(http_request),0); //·¢ËÍÇëÇó
recv(remote_std,response,sizeof(response),0); //½ÓÊÕ·µ»Ø£
Ïà¹ØÎÊ´ð£º
ÎÒûÓа²×°²Ù×÷ϵͳµÄ¾Ñ飬¼´Ê¹ÊÇWINDOWS¡£ÏÖÔÚÏëÔÚLINUX²Ù×÷ϵͳ´ó»·¾³ÏÂѧCÓïÑÔ£¬ÓÖÒªÂò±¾±¾£¬ÇëÎÊÈç¹û²Ù×÷ϵͳ°²×°²»µ±£¬»á²»»á¶ÔµçÄÔÔì³Éʲô´óµÄÆÆ»µ£¿ÓÐûÓбØÒªÏÈÂòÒ»¸ö¶þÊÖµçÄÔÁ·Ò»ÏÂLINUXµÄ ......
ÔÚlinuxÉÏʹÓÃtomcat·þÎñÆ÷³öÏÖÁ˺ܶàclose_wait
ʹÓÃä¯ÀÀÆ÷·ÃÎʵÄʱºò³öÏÖÒ³ÃæÒ»Ö±ÔÚÇëÇ󣬺ÜÂý £¬»ù±¾ÉÏûÓлØÓ¦¡£
ÓÃnetstat -anp ²é¿´ Óкܶàclose_wait
Õâ¸öÊÇʲôÒýÆðµÄ°¢ £¬Ôõô½â¾ö£¿
......
ʹÓÃStruts2ÉÏ´«Îļþ£¬ÔÚlinuxϱ¨´í
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......
• ʵÑéÄ¿µÄ
ͨ¹ý±¾ÊµÑ飬Á˽âLinuxϵͳµÄ×éÖ¯ºÍÐÐΪ£¬¹Û²ì¸÷Öִ洢ϵͳ״̬ÐÅÏ¢µÄÄں˱äÁ¿£»ÊìϤÕâЩ½á¹¹ÓëÐÅÏ¢¡£
• ʵÑéÄÚÈÝ
±àд³ÌÐò´òÓ¡³öÈç ......