亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ping.cpp

?? 嵌入式linux ip掃描程序源代碼 for ARM9 CPU 需要QT運行庫
?? CPP
字號:
#include "Ping.h"#include <stdio.h>Ping::Ping(){  Ping(56);}Ping::Ping(int dataLength){  this->dataLength=dataLength;  pid=getpid();  sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);  int size=60*1024;  setsockopt(sockfd,SOL_SOCKET,SO_RCVBUF,&size,sizeof(size));  //struct timeval tv;  //tv.tv_sec=5;  //tv.tv_usec=0;  //setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,&tv,sizeof(tv));  destSockaddr.sin_family=AF_INET;  fromSockaddr.sin_family=AF_INET;  selectTimeout.tv_sec=0;  selectTimeout.tv_usec=1;  setTimeout(1,0);}//----------------------------------------------------------------------------------------------------void Ping::setDataLength(int length){  dataLength=length;}//-----------------------------------------------------------------------------------------------------int Ping::setHost(char* host){  this->host=host;  return inet_aton(host,(in_addr*)&(destSockaddr.sin_addr));}//------------------------------------------------------------------------------------------------------void Ping::setTimeout(int sec,int usec){  timeout.tv_sec=sec;  timeout.tv_usec=usec;}//--------------------------------------------------------------------------------------------------------int Ping::waitReady(){   struct timeval tt=selectTimeout;  fd_set rset;  FD_ZERO(&rset);  FD_SET(sockfd,&rset);  return(select (sockfd+1,&rset,NULL,NULL,&tt));}//------------------------------------------------------------------------------------------------------int Ping::getReply(){  int n;  socklen_t fromlen=sizeof(fromSockaddr);  int countor=3;  struct timeval tval;  while (--countor>0){    n=waitReady();        if (n==-1)      return Ping::REPLY_ERROR;  //error ,set time out    //if (n==0 )    //return Ping::REPLY_WAITING;    if (n>0){      if ((n=recvfrom(sockfd,recvbuf,sizeof(recvbuf),0,(struct sockaddr*)&fromSockaddr,&fromlen))<0){		if (errno==EINTR){	  //printf("eintr!\n");	  continue;	}	return Ping::REPLY_ERROR;  //error ,set time out      }      gettimeofday(&tval,NULL);      if (proc(recvbuf,n,&tval)){	//---------------------------------------------------------------             echo_ip =(&fromSockaddr)->sin_addr;           //   echo_	//----------------------------------------------------------------	return Ping::REPLY_OK;          }    }    gettimeofday(&tval,NULL);    tv_sub(&tval,&requestTime);    tv_sub(&tval,&timeout);    //printf("sec=%d,usec=%d\n",tval.tv_sec,tval.tv_usec);    if (tval.tv_sec<0 | tval.tv_usec<0)      return REPLY_WAITING;  }  return Ping::REPLY_TIMEOUT;}//----------------------------------------------------------------------------------------------/*void Ping::tv_add(struct timeval *out,struct timeval *in){  if ((out->tv_usec+=in->tv_usec)>1000000){    ++out->tv_sec;    out->tv_usec-=1000000;  }  out->tv_sec+=in->tv_sec;}*/void Ping::tv_sub(struct timeval *out,struct timeval *in){  if ((out->tv_usec-=in->tv_usec)<0){    --out->tv_sec;    out->tv_usec+=1000000;  }  out->tv_sec-=in->tv_sec;}//-------------------------------------------------------------------------------------------------------int Ping::getReplyTime(){  return (int)rtt;}//--------------------------------------------------------------------------------------------------------int Ping::proc(char* ptr,ssize_t len,struct timeval *tvrecv){  int hlen1,icmplen;  struct icmp* icmp;  struct timeval *tvsend;  struct ip *ip;  ip=(struct ip*)ptr;  hlen1=ip->ip_hl<<2;  icmp=(struct icmp*)(ptr+hlen1);  if ((icmplen=len-hlen1)<8){    //printf("icmplen (%d)<8",icmplen);    return 0;  }  if (icmp->icmp_type==ICMP_ECHOREPLY){    if (icmp->icmp_id!=(unsigned short)getpid()){      //printf(".");      return 0;    }    if (icmplen<16){      //printf("icmplen (%d)<16",icmplen);      return 0;    }    //tvsend=(struct timeval*) (icmp->icmp_data);   //--------------------------------------------------------------------------------   // printf("the icmp seq is %d",icmp->icmp_seq);    counter1=icmp->icmp_seq;    //-----------------------------------------------------------------------------------    return 1;    tvsend=&requestTime;    //printf("send second=%d.%d,recv second=%d.%d,diff=%d\n",tvsend->tv_sec,tvsend->tv_usec,tvrecv->tv_sec,tvrecv->tv_usec,tvrecv->tv_usec-tvsend->tv_usec);    tv_sub(tvrecv,tvsend);    rtt=tvrecv->tv_sec*1000.0+tvrecv->tv_usec/1000.0;        //printf("%d bytes from %s:seq=%u,ttf=%d,rtt=%.3f ms\n",icmplen,inet_ntoa(fromSockaddr.sin_addr),icmp->icmp_seq,ip->ip_ttl,rtt);  }  //else{    //printf("get icmp but not echo,type=%d\n",icmp->icmp_type);    return 0;//}}//----------------------------------------------------------------------------------------------------------------void Ping::request(){    struct icmp* icmp;  icmp=(struct icmp*)sendbuf;  icmp->icmp_type=ICMP_ECHO;  icmp->icmp_code=0;  icmp->icmp_id=pid;  icmp->icmp_seq=counter;  gettimeofday((struct timeval*)(icmp->icmp_data),NULL);  //requestTime=*((struct timeval*)(icmp->icmp_data));  gettimeofday(&requestTime,NULL);  int len=8+dataLength;  icmp->icmp_cksum=0;  icmp->icmp_cksum=in_cksum((u_short*)icmp,len);  sendto(sockfd,sendbuf,len,0,(sockaddr*)&destSockaddr,sizeof(destSockaddr));  return;}//-----------------------------------------------------------------------------------------------------------unsigned short Ping::in_cksum(unsigned short* addr,int len){  int nleft=len;  int sum=0;  unsigned short *w=addr;  unsigned short answer=0;  while (nleft>1){    sum+=*w++;    nleft-=2;  }  if (nleft==1){    *(unsigned char*)(&answer)=*(unsigned char*)w;    sum+=answer;  }  sum=(sum>>16)+(sum&0xffff);  sum+=(sum>>16);  answer=~sum;  return (answer);}//------------------------------------------------------------------------------------------------------------------char * Ping::getIp()   {       //return echo_ip;      //char *echolp;        echolp=inet_ntoa(echo_ip);        return echolp;   }	//-----------------------------------------------------------------------------------------------------------int Ping::geticmp_seq(){    return  counter1;}//int  Ping::getcounter()  // { //    return(counter-1); // }	/*int main(int argc,char * * argv){  Ping* ping=new Ping(56);  ping->setHost(argv[1]);  int result;    for (int i=0;i<10000;i++){    sleep(1);    ping->request();    for (;;){      result=ping->getReply();      //printf("result=%d\n",result);      if (result==Ping::REPLY_OK){	  printf("ping ok ! result=%d\n",result);	  int t=ping->getReplyTime();	  printf("The reply time is %d\n",t);	  break;}      if (result==Ping::REPLY_ERROR | result==Ping::REPLY_TIMEOUT){	printf("request out of time\n");	break;      }    }  }    return 0;}*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线免费观看| 夜夜操天天操亚洲| 欧美无砖专区一中文字| 国产精品一级二级三级| 一区二区三区四区亚洲| 久久精品一区蜜桃臀影院| 精品视频色一区| 97精品电影院| 成人午夜av电影| 国产一区二区成人久久免费影院| 亚洲一区免费视频| 亚洲女人****多毛耸耸8| 久久综合av免费| 日韩欧美国产精品| 8x福利精品第一导航| 717成人午夜免费福利电影| jlzzjlzz欧美大全| 国产成人丝袜美腿| 国产成+人+日韩+欧美+亚洲| 国产成人一区在线| 国产成人免费在线| 国产suv一区二区三区88区| 国产成人av福利| 国产精品亚洲一区二区三区在线| 国产在线视视频有精品| 精品一二线国产| 国产一区啦啦啦在线观看| 亚洲成人综合网站| 亚洲成人午夜影院| 日本成人中文字幕在线视频| 全国精品久久少妇| 精品一区在线看| 麻豆精品在线观看| 国产在线日韩欧美| 成人精品小蝌蚪| 在线精品视频免费播放| 欧美日韩在线免费视频| 日韩一区二区三区观看| 久久亚区不卡日本| 国产午夜久久久久| 亚洲电影在线播放| 国产一区999| 日韩欧美自拍偷拍| 国产午夜亚洲精品午夜鲁丝片| 亚洲女子a中天字幕| 奇米四色…亚洲| 99re66热这里只有精品3直播 | 久久奇米777| 一区二区视频免费在线观看| 美女精品一区二区| 在线视频国内一区二区| 884aa四虎影成人精品一区| 成人免费精品视频| 欧美日韩激情一区二区| 精品三级av在线| 亚洲一区在线免费观看| 国产成人午夜片在线观看高清观看| 欧美亚洲国产一区在线观看网站| 久久久久久久免费视频了| 日韩国产欧美在线播放| 91精彩视频在线| 日韩毛片精品高清免费| 国产精品99久久久久久有的能看| 制服视频三区第一页精品| 一区二区三区四区视频精品免费| 国产成人精品一区二区三区四区 | 久久精品国产澳门| 日本韩国一区二区| 国产精品久久久久三级| 成人性生交大片免费看在线播放| 欧美精品一区二区三区蜜桃 | 精品99一区二区| 欧美a级理论片| 欧美tk丨vk视频| 国产成人精品亚洲午夜麻豆| 国产亚洲精品超碰| 国产大陆a不卡| 国产精品久久久久久久第一福利 | 久久蜜桃av一区二区天堂| 国产一区二区三区国产| 久久久久久亚洲综合| 国产高清一区日本| 国产精品对白交换视频| 91亚洲精品一区二区乱码| 一区二区三区欧美激情| 欧美久久免费观看| 国产精品中文字幕一区二区三区| 国产日产欧美一区| 色8久久精品久久久久久蜜| 婷婷一区二区三区| 国产欧美综合色| 欧美日本一区二区在线观看| 九九国产精品视频| 亚洲伦在线观看| 久久午夜国产精品| 成人h精品动漫一区二区三区| 亚洲午夜免费福利视频| 日韩欧美www| 91久久一区二区| 国产高清亚洲一区| 秋霞国产午夜精品免费视频| 国产亚洲欧美日韩日本| 欧美在线一二三| aaa欧美色吧激情视频| 夜夜嗨av一区二区三区网页| 久久综合一区二区| 欧美在线观看视频在线| 成人app在线观看| 久久99久久久欧美国产| 五月天视频一区| 亚洲狠狠丁香婷婷综合久久久| 中文字幕的久久| 久久久久成人黄色影片| 欧美成人一区二区三区在线观看| 欧美亚洲综合一区| 色婷婷精品久久二区二区蜜臀av| 欧美日韩高清一区| 调教+趴+乳夹+国产+精品| 91视频一区二区| 亚洲无人区一区| 欧美日韩国产精选| 青椒成人免费视频| 2024国产精品| av成人老司机| 亚洲一区在线观看网站| 欧美精品色综合| 麻豆传媒一区二区三区| 2欧美一区二区三区在线观看视频| 激情综合网天天干| 久久免费电影网| 91网站在线观看视频| 亚洲主播在线观看| 777奇米四色成人影色区| 久久av资源网| 亚洲国产高清aⅴ视频| 色综合中文字幕国产 | 91麻豆免费视频| 天堂va蜜桃一区二区三区| 欧美精品一区二区三区蜜桃视频| 波多野结衣的一区二区三区| 蜜桃传媒麻豆第一区在线观看| 日韩二区在线观看| 亚洲成人激情av| 亚洲精品一二三| 亚洲视频一二区| 91免费版pro下载短视频| 国产一区二区免费视频| 免费的成人av| 精品一区二区日韩| 亚洲综合在线电影| 毛片不卡一区二区| 免费精品视频在线| 2022国产精品视频| 国产欧美日韩麻豆91| 精品一区二区三区视频| 国产视频一区在线观看| 欧美色涩在线第一页| 亚洲人成网站影音先锋播放| 欧美一区二区三区视频在线| 国产一区二区三区不卡在线观看| 亚洲视频你懂的| 666欧美在线视频| 成人免费毛片嘿嘿连载视频| 日韩av不卡在线观看| 亚洲国产精华液网站w| 制服丝袜亚洲色图| 丁香六月综合激情| 男女男精品视频网| 欧美一区二区三区的| 精品久久久久久久久久久久久久久久久| 欧美色手机在线观看| 精品国产乱码91久久久久久网站| 久久精品亚洲乱码伦伦中文| 亚洲男人天堂一区| 日韩av二区在线播放| 99久久伊人精品| 国产成人免费在线观看不卡| 韩国av一区二区三区四区| 成人激情免费网站| 国产欧美日韩在线| 国产91综合网| 亚洲最新视频在线观看| 欧美一级爆毛片| 91极品视觉盛宴| 亚洲精品乱码久久久久久| 欧美亚洲国产一区在线观看网站| 五月激情六月综合| 日韩欧美在线网站| 国产91丝袜在线播放0| 亚洲女同ⅹxx女同tv| 欧美福利视频导航| 久草精品在线观看| 五月天丁香久久| 国产精品精品国产色婷婷| 538prom精品视频线放| 91成人免费电影| 成人免费观看av| 麻豆国产精品官网| 亚洲 欧美综合在线网络| 国产精品麻豆欧美日韩ww|