易截截图软件、单文件、免安装、纯绿色、仅160KB

【C++】实用socket编程 获取网页html信息

 // Socket1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<winsock.h>
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
#define WSWENS MAKEWORD(2,0)
int _tmain(int argc, _TCHAR* argv[])
{
sockaddr_in sin;
WSADATA wsadata;
//WSAStartup()的调用方和Windows Sockets DLL互相通知对方它们可以支持的最高版本,
//并且互相确认对方的最高版本是可接受的. 在WSAStartup()函数的入口,
//Windows Sockets DLL检查了应用程序所需的版本.如果版本高于DLL支持的最低版本,
//则调用成功并且DLL在wHighVersion中返回它所支持的最高版本,
//在 wVersion中返回它的高版本和wVersionRequested中的较小者.
//然后Windows Sockets DLL就会假设应用程序将使用wVersion.
if(WSAStartup(WSWENS,&wsadata)!=0)

cout<<"startup failed"<<endl;

SOCKET s = socket(PF_INET,SOCK_STREAM,0);
// memset 是对一段内存空间全部设置为某个字符
memset(&sin,0,sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
//sin.sin_addr.S_un.S_addr=inet_addr("203.208.37.99");
hostent* hptr = gethostbyname("www.google.cn");
// 将有参数的string内容copy到左边参数
memcpy(&sin.sin_addr.S_un.S_addr,hptr->h_addr,hptr->h_length);
printf("IP address:%d.%d.%d.%d\n",sin.sin_addr.S_un.S_un_b.s_b1,
sin.sin_addr.S_un.S_un_b.s_b2,
sin.sin_addr.S_un.S_un_b.s_b3,
sin.sin_addr.S_un.S_un_b.s_b4);
// 将sockaddr_in transfer to sockaddr
if(connect(s,(sockaddr*)&sin,sizeof(sin)))
{
cout<<"connect failed"<<endl;
return 0;
}
else
{
cout<<"connect success"<<endl;
}
char buffersend[]="GET/HTTP1.1\nHOST:www.google.cn\nconnection:close\n\n";
send(s,buffersend,strlen(buffersend),0);
/*string ss;
int len = recv(s,const_cast<char*>(ss.c_str()),2000,0);*/
char bufferecv[10240];
int len=recv(s,bufferecv,10240,0);
printf("the length of page is %d\n", len);


相关文档:

C/C++——小编谈C语言函数那些事(18)

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
 
1.     raise函数
raise函数的功能是向正在执行的程序发送一个信号,其用法为:int raise(int sig);程序实例如下:
#include <signal.h& ......

C/C++——小编谈C语言函数那些事(21)

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
 
1.     setfillpatterne函数
setfillpatterne函数的功能是选择用户定义的填充模式,其用法为:void far setfillpattern(char far *upattern, int ......

C/C++——小编谈C语言函数那些事(26)

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
 
1.   sopen函数
sopen函数的功能是打开一共享文件,其用法为:int sopen(char *pathname, int access, int shflag, int permiss);程序实例如下:
#include ......

C和C++程序员学习历程

如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。
  一家之言,欢迎拍砖哈。
  1、可以考虑先学习C.
  大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语 ......

C++&JAVA异同


C++与Java异同
1、指针★★★★★
C C++中的指针,提供了很大的灵活性,但是灵活也带来了危险,对指针操作的不当容易造成内存泄露或是空悬指针等问题。
Java取消了指针。但实际上,java中声明的所有引用数据类型的名称,可以理解为就是一个指针。该名称存储在栈内存上,指向对内存上使用new开辟的空间。
如:
int[] ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号