linux利用socket编程来下载网页的html代码
2011-11-14 22:11
260 查看
http://hi.baidu.com/zzniu1984/blog/item/f9c45a029dd96a7f3912bbd0.htmllinux利用socket编程来下载网页的html代码2009-05-20 14:53
编译该程序: gcc -g wclient.c -o wclient 运行该程序: ./wclient www.baidu.com 80 抓取百度首页的html代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> //建立一个http tcp 连接的辅助函数 int htconnect(char *domain, int port) { int white_sock; struct hostent *site; struct sockaddr_in me; //获得服务器的名称 site = gethostbyname(domain); if(NULL == site) { return (-2); } //建立套接字 white_sock = socket(AF_INET, SOCK_STREAM, 0); if(white_sock < 0) { return (-1); } //初始化为0 memset(&me, 0, sizeof(struct sockaddr_in)); memcpy(&me.sin_addr, site->h_addr_list[0], site->h_length); me.sin_family = AF_INET; me.sin_port = htons(port); //建立连接 return ( (connect(white_sock, (struct sockaddr*)&me, sizeof(struct sockaddr))<0)?1:white_sock ); } void main(int argc, char** argv) { int black_sock; char bugs_bunny[3]; if(argc < 2) { printf("usage:\nwClient host\n"); return; } black_sock = htconnect(argv[1], 80); if (black_sock<0) { printf ( "Socket Connect Error!\n") ; return ; } char *msg = "GET / HTTP/1.1\r\n\r\n"; if( send(black_sock, msg, strlen(msg), 0)<0 ) { perror("error in send msg\n"); exit(1); } char buf[1000]; while(1) { while((recv(black_sock,buf,1000,MSG_WAITALL))>0) { printf("%s",buf); } } close(black_sock); } |
相关文章推荐
- Linux/Unix服务端和客户端Socket编程入门实例(含源码下载)
- [转]Linux Socket编程 Socket抓取网页源码
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码(用socket解释http,不错)
- linux网络编程之socket(六):利用recv和readn函数实现readline函数
- 通过HTTP GET下载网页(socket编程)
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
- Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--前面6篇博文全部源代码下载地址
- Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--前面6篇博文全部源代码下载地址
- socket http编程(用socket编程实现http网页下载)
- Linux/Unix服务端和客户端Socket编程入门实例(含源码下载)
- linux网络编程之socket(六):利用recv和readn函数实现readline函数
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
- Linux下Socket网络编程,文件传输,数据传输的C语言例子
- Linux下基于C/C++的Socket编程基础
- Linux socket网络编程之聊天室(三):select异步通讯实现
- Linux 下 socket 编程示例
- Linux Socket编程实例(一个Hello World程序)
- Linux下Socket编程
- Linux下的socket编程实践(五)设置套接字I/O超时的方案