Вот пример под Linux:
Код | #include <stdlib.h> #include <stdio.h> #include <netinet/in.h> #include <sys/socket.h> #include <unistd.h> #include <string.h> #include <netdb.h>
#define MAXBUFFSIZE 1024
void get_home_page(int socket_fd);
int main(int argc, char* argv[]){
int socket_fd; struct sockaddr_in name; struct hostent* hostinfo;
socket_fd = socket(PF_INET,SOCK_STREAM,0); name.sin_family = AF_INET; hostinfo = gethostbyname(argv[1]);
if(hostinfo == NULL) return 1; if(!inet_aton(hostinfo->h_addr_list[0],&name.sin_addr)) return 1; name.sin_port = htons(80);
if(connect(socket_fd,&name,sizeof(name)) == -1){ perror("connect"); return 1; }
get_home_page(socket_fd); close(socket_fd); return 0; }
void get_home_page(int socket_fd){ char buffer[MAXBUFFSIZE]; ssize_t number_characters_read;
sprintf(buffer,"GET / HTTP/1.0\r\n\r\n"); send(socket_fd,buffer,strlen(buffer),0);
while(1){ if(!(number_characters_read = recv(socket_fd,buffer,MAXBUFFSIZE,0))) return; fwrite(buffer,sizeof(char),number_characters_read,stdout); } }
|
|