C++判断主机是否处于联网状态
本文实例为大家分享了C++判断主机是否处于联网状态的具体代码,供大家参考,具体内容如下
直接让本机访问一个网站,如果成功的话,就说明成功联网,没有访问成功,则说明没有联网!!!
#include#include #pragmacomment(lib,"ws2_32.lib") #defineLEN1024//接收数据的大小 usingnamespacestd; intmain() { //加载套接字库 WORDwVersionRequested; WSADATAwsaData; interr; wVersionRequested=MAKEWORD(1,1);//初始化Socket动态连接库,请求1.1版本的winsocket库 err=WSAStartup(wVersionRequested,&wsaData); if(err!=0){ return0; } if(LOBYTE(wsaData.wVersion)!=1||//判断请求的winsocket是不是1.1的版本 HIBYTE(wsaData.wVersion)!=1){ WSACleanup();//清盘 return0;//终止对winsocket使用 } //WSADATAws; //WSAStartup(MAKEWORD(2,2),&ws);// charhttp[60]="www.google.com";//访问谷歌网页 SOCKETsock=socket(AF_INET,SOCK_STREAM,0);//建立socket if(sock==INVALID_SOCKET) { cout<<"建立访问socket套接字失败!"< h_addr,sizeof(hostadd));//将返回的IP信息Copy到地址结构 hostadd.sin_family=AF_INET; hostadd.sin_port=htons(80); charbuf[LEN]="GET/HTTP/1.1\r\nHost:";//构造Http请求数据包 strcat(buf,inet_ntoa(hostadd.sin_addr)); strcat(buf,"\r\nContent-Length:10\r\n\r\n"); strcat(buf,"Connection:close"); inttime=1000;//超时时间 setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(char*)&time,sizeof(time)); if(connect(sock,(sockaddr*)&hostadd,sizeof(hostadd))==SOCKET_ERROR)//连接请求 { cout<<"与网页建立连接失败!"< 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。