(纯手打,有问题可以交流)
最近在学习socket,然后做了一些小的实验,发现socket功能还真是强大,对于socket流使套接字在某种程度上其实是与终端的telnet相似的,IP地址对应socket里的sock地址,端口对应sock里的端口,然后就看自己在终端里发送命令,就如同利用socket的send和recv方法了,
我在终端上测试一个telnet,获取一个网页的内容:
~:telnet www.baidu.com 80 //首先进入到telnet
输入:GET / HTTP/1.1
输入:host bolg.chinaunix.net
回车后再按一次回车,就能获取网页代码:数量太大,仅仅粘贴一部分:
这样就通过telnet抓取到一个网页,而利用socket也是如此,只是发送消息时将消息格式给变一下,就能实现这个功能:而我是将抓取的网页内容写到一个临时的html文件里,这样就可以将抓取的网页文件在浏览器中打开了,代码贴出:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <errno.h>
#include <fcntl.h>
#define PORT 80
//char *cmd = "GET / HTTP/1.1 \nhost:www.xust.edu.cn";
int main(int arg,char **argc)
{
printf("11111111\n");
int sockfd;
int fd;
struct sockaddr_in servaddr;
char buf[1024] ;
char tmp1[100];
char cmd[1024];
//char *cmd="GET /uid/30510400.html HTTP/1.1\r\nhost:blog.chinaunix.net\r\n\r\n";
struct
最近在学习socket,然后做了一些小的实验,发现socket功能还真是强大,对于socket流使套接字在某种程度上其实是与终端的telnet相似的,IP地址对应socket里的sock地址,端口对应sock里的端口,然后就看自己在终端里发送命令,就如同利用socket的send和recv方法了,
我在终端上测试一个telnet,获取一个网页的内容:
~:telnet www.baidu.com 80 //首先进入到telnet
输入:GET / HTTP/1.1
输入:host bolg.chinaunix.net
回车后再按一次回车,就能获取网页代码:数量太大,仅仅粘贴一部分:
这样就通过telnet抓取到一个网页,而利用socket也是如此,只是发送消息时将消息格式给变一下,就能实现这个功能:而我是将抓取的网页内容写到一个临时的html文件里,这样就可以将抓取的网页文件在浏览器中打开了,代码贴出:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <errno.h>
#include <fcntl.h>
#define PORT 80
//char *cmd = "GET / HTTP/1.1 \nhost:www.xust.edu.cn";
int main(int arg,char **argc)
{
printf("11111111\n");
int sockfd;
int fd;
struct sockaddr_in servaddr;
char buf[1024] ;
char tmp1[100];
char cmd[1024];
//char *cmd="GET /uid/30510400.html HTTP/1.1\r\nhost:blog.chinaunix.net\r\n\r\n";
struct