易截截图软件、单文件、免安装、纯绿色、仅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语言函数那些事(16)

 C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1.      qsort函数
qsort函数的功能是使用快速排序例程进行排序,其用法为:void qsort(void *base, int nelem, int width, int (*fcmp)());程 ......

C/C++多种方法获取文件大小

#include <iostream>
#include <io.h>
#include <sys\stat.h>
#include <afx.h>
#define _AFXDLL
using namespace std;
void main()
{
    // 此文件在工程打开状态下为不可访问
    char* f ......

[随想]C/C++程序员

       刚刚看过这篇《30 years of C》,回想了这几年的学习历程。
      在大学里,我学习的第一门程序设计语言是C,但花时间最多的还是C++。大约五年前,开始啃《 C++编程思想》两卷本,用Dev-cpp在机器练习着书上的一个个例子程序,之后又学习了面向对象编程、STL、模板。凭着 ......

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

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

C/C++ style

 #include <stdio.h>
int main()
{
char *str[] = {"welcome", "to", "fortemedia", "nanjing"};
char **p = str + 1;
str[0] = ( *p++ ) + 2;
str[1] = * ( p + 1 );
str[2] = p[1] + 3;
str[3] = p[0] + ( str[2] - str[1] );
printf ( "%s\n", str[0] );
printf ( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号