Tài liệu HHTP CLIENT EXAMPLE ppt

1 139 0
Tài liệu HHTP CLIENT EXAMPLE ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

/* HHTP CLIENT EXAMPLE *HTTP RFC SP: space (khoang trang) CRLF: \r\n REQUEST SYNTAX: Request = Request-Line *( general-header | request-header | entity-header ) CRLF [ message-body ] Request-Line = Method SP Request-URI SP HTTP-Version CRLF Method = "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | extension-method Request-URI = "*" | absoluteURI | abs_path Ex : absoluteURI: http://www.w3.org/pub/WWW/TheProject.html abs_path: /pub/WWW/TheProject.html HTTP-Version = "HTTP/1.1" | "HTTP/1.0" EX: GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org or: GET /pub/WWW/TheProject.html HTTP/1.1 */ #include <winsock.h> # include <stdio.h> ////// # define MY_PORT 80 # define SERVER_ADDR "www3.tuoitre.com.vn" # define URL "http://www3.tuoitre.com.vn/transweb/tygia.htm" void makeRequestStr(char * buffer,const char * url, const char * host) { /* Example: s = "GET http://www3.tuoitre.com.vn/transweb/tygia.htm HTTP/1.1\r\n"; s += "Host: www3.tuoitre.com.vn\r\n"; s += "Connection: Close\r\n\r\n"; */ strcpy(buffer,"GET ");strcat(buffer,url); strcat(buffer," HTTP/1.1\r\n"); strcat(buffer,"HOST: ");strcat(buffer,host);strcat(buffer,"\r\n"); strcat(buffer,"CONNECTION: CLOSE\r\n\r\n"); } u_long LookupAddress(const char* pcHost); void error(char * msg); int main(int argc, char* argv[]) { WSADATA wsaData; WSAStartup(MAKEWORD(1,1),&wsaData); /////////////////////////// printf("Client "); SOCKET wsk=socket(AF_INET,SOCK_STREAM,0); struct hostent *hostname=gethostbyname(SERVER_ADDR); ///////////////////////////// struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_addr.S_un.S_addr=LookupAddre ss(SERVER_ADDR); server_addr.sin_port = htons(MY_PORT); if (connect(wsk,(struct sockaddr*)&server_addr,sizeof(server_addr)) < 0) error("ERROR connecting"); printf("connected!\n"); //Send REQUEST char buffer[1024];int n; makeRequestStr(buffer,URL,SERVER_ADDR); send(wsk,buffer,strlen(buffer),0); //GET RESPONSE printf("Http content: "); n = recv(wsk,buffer,1024,0); buffer[n]='\0'; printf("%s\n",buffer); closesocket(wsk); /////////////////////////// WSACleanup(); return 0; } void error(char * msg) { printf("%s\n",msg); exit(0); } u_long LookupAddress(const char* pcHost) { u_long nRemoteAddr = inet_addr(pcHost); if (nRemoteAddr == INADDR_NONE) { // pcHost isn't a dotted IP, so resolve it through DNS hostent* pHE = gethostbyname(pcHost); if (pHE == 0) { return INADDR_NONE; } nRemoteAddr = *((u_long*)pHE- >h_addr_list[0]); } return nRemoteAddr; } . /* HHTP CLIENT EXAMPLE *HTTP RFC SP: space (khoang trang) CRLF: REQUEST SYNTAX: . "http://www3.tuoitre.com.vn/transweb/tygia.htm" void makeRequestStr(char * buffer,const char * url, const char * host) { /* Example: s = "GET http://www3.tuoitre.com.vn/transweb/tygia.htm HTTP/1.1 ";

Ngày đăng: 26/01/2014, 17:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan