#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
int main(int argc,char **argv)
{
if (argc<2){
printf( "Please input the hostName. Example:\n %s www.baidu.com\n ",argv[0]);
return;
}
char *host = argv[1];
struct hostent *site = NULL;
struct sockaddr_in me;
memset(&me, 0, sizeof(struct sockaddr_in));
printf("%s\n",host);
site = gethostbyname(host);
memcpy(&me.sin_addr, site-> h_addr_list[0], site-> h_length);
me.sin_family = AF_INET;
me.sin_port = htons(80);
int socket_des = socket(AF_INET,SOCK_STREAM,0);
if (socket_des == -1)
{
printf("socket create error!!!");
return 1;
}
if (connect(socket_des, (struct sockaddr *)&me,sizeof(struct sockaddr)) == -1)
{
printf("connect error!!!");
return 1;
}
char host_str[100]={0};
sprintf(host_str,"Host: %s\n",host);
send(socket_des,"GET / HTTP/1.0\n",strlen("GET / HTTP/1.0\n"),0);
send(socket_des,host_str,strlen(host_str),0);
send(socket_des,"\n",strlen("\n"),0);
char buf[5] = {0};
while (read(socket_des, buf, 1)> 0)
printf( "%c ",buf[0]);
printf( "\n ");
close(socket_des);
return 0;
}
linux 下用c获取网页
最新推荐文章于 2021-05-14 21:26:48 发布
本文提供了一个使用C语言进行网络编程的示例代码,通过该示例可以了解如何创建客户端程序并连接到指定的主机及端口。该程序演示了获取主机名解析、建立套接字连接、发送HTTP请求及接收响应的基本过程。
3143

被折叠的 条评论
为什么被折叠?



