📄 get.c
字号:
#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <signal.h>#include <stdlib.h>#include <string.h>#include <netdb.h>#define BUF_SIZ 4096int main( int argc, char **argv) { char buff[BUF_SIZ]; char msg[BUF_SIZ]; int s; fd_set sockid_readable; struct sockaddr_in server; struct hostent *host_info; unsigned long addr;/* Ip Adresse holen*/ host_info = gethostbyname("www.2duche.com"); memcpy( (char *)&server.sin_addr, host_info->h_addr, host_info->h_length ); server.sin_family = AF_INET;/*Http Port 80.*/ server.sin_port = htons(80); printf("Createing Socket:...");/*Socket erstellen.*/ s = socket(AF_INET, SOCK_STREAM, 0); if (s <= 0) { printf("Error.\n"); return EXIT_SUCCESS; } else { printf("Ok.\n"); } printf("Connecting with server:..."); char result;/*Mit dem Server verbinden.*/ result = connect(s,(struct sockaddr*)&server,sizeof(server)); if (result == -1) { printf("Error.\n"); return EXIT_SUCCESS; } else { printf("Ok.\n"); }/*HTTP 1.1 Anfrage:*/ //char send[] = "GET /test.html HTTP/1.1\r\nHost:www.2duche.com\r\n\r\n"; char send[] = "GET /test.html HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-cn\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\nHost: www.2duche.com\r\nConnection: Close\r\n\r\n"; strcat(send, "\n");/*HTTP 1.1 Anfrage senden*/ printf("Sending Socket:..."); if (0 <= write(s, send, strlen(send))) { printf("Ok.\n"); } else { printf("Error.\n"); return EXIT_SUCCESS; }/*Datei vom Server empfangen.*/ printf("Getting file:..."); int count = recv(s, buff, BUF_SIZ, 0); while(count>0){/*'\0' an die empfangene Variable anhängen*/ buff[count] = '\0';/*Ergebnis ausgeben*/ printf("Ergebnis des Servers: ====================\n%s\n", buff); count = recv(s, buff, BUF_SIZ, 0); } close(s); printf("\r\n\r\n Socket is closed"); return EXIT_SUCCESS; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -