1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu HHTP CLIENT EXAMPLE ppt

1 140 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu HHTP CLIENT EXAMPLE ppt
Định dạng
Số trang 1
Dung lượng 6,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

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;

}

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

TỪ KHÓA LIÊN QUAN

w