首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

应用C语言socket判断当前网络是否联通

2013-03-04 
使用C语言socket判断当前网络是否联通有时候需要用代码判断当前网络是否联通//获取联网状态int check_net(

使用C语言socket判断当前网络是否联通

有时候需要用代码判断当前网络是否联通

//获取联网状态int check_net(void){        int fd;         int in_len=0;        struct sockaddr_in servaddr;        //char buf[128];        in_len = sizeof(struct sockaddr_in);        fd = socket(AF_INET,SOCK_STREAM,0);        if(fd < 0)        {                   perror("socket");                return -1;         }           /*设置默认服务器的信息*/        servaddr.sin_family = AF_INET;        servaddr.sin_port = htons(NET_PORT);        servaddr.sin_addr.s_addr = inet_addr(NET_IP);        memset(servaddr.sin_zero,0,sizeof(servaddr.sin_zero));        /*connect 函数*/        if(connect(fd,(struct sockaddr* )&servaddr,in_len) < 0 )         {                   printf("not connect to internet!\n ");                close(fd);                return 0; //没有联网成功        }           else        {                   printf("=====connect ok!=====\n");                close(fd);                return 1;        }   }
上述函数可能有待于优化,因为如果短时间内连续执行可能会出现停滞的情况,打印不出来connet ok!不过1s调用一次这个函数来检测应该是可以的!

欢迎网友为我指正里面的不足之处!


热点排行