当前位置:  技术问答>linux和unix

问:linux下实现ping lost 100% 没找到原因 急!

    来源: 互联网  发布时间:2017-05-13

    本文导语:  se1012@ubuntu:~/Desktop/ping$ ./myping www.sina.com PING www.sina.com(202.108.33.60):56 bytes of data. -------------------PING statistics---------------- 3 packets transmitted,0 received,100% lost,time 0 ms rtt min/avg/max/mdev = 0.000/-nan/0.000/-nan ms 不太会...

se1012@ubuntu:~/Desktop/ping$ ./myping www.sina.com
PING www.sina.com(202.108.33.60):56 bytes of data.

-------------------PING statistics----------------
3 packets transmitted,0 received,100% lost,time 0 ms
rtt min/avg/max/mdev = 0.000/-nan/0.000/-nan ms


不太会用Linux 用gdb看了一下 

(gdb) set args www.sina.com
(gdb) b 129
Breakpoint 1 at 0x8048b10: file ping.c, line 129.
(gdb) r
Starting program: /home/se1012/Desktop/ping/myping www.sina.com
PING www.sina.com(202.108.33.60):56 bytes of data.
s

Breakpoint 1, recv_packet () at ping.c:133
133     fromlen = sizeof(from);
(gdb) s
134     signal(SIGALRM,statistics);
(gdb) s
136     while(nreceived > 16); //把进位的值也加到校验和上
    answer = ~sum;   //取反得到校验和
    return answer;
}

int pack(int pack_no) //设置ICMP报头
{
    int i,packsize;
    struct icmp *icmp;
    //struct timeval *tval;
    icmp = (struct icmp*)sendpacket; //将sendpacket强制转换成ICMP格式
    icmp->icmp_type = ICMP_ECHO; //ICMP_ECHO类型的类型号为0
    icmp->icmp_code = 0;
    icmp->icmp_cksum = 0;
    icmp->icmp_seq = pack_no; //ICMP报文的发送顺序
    icmp->icmp_id = pid;
    packsize = 8 + datalen;     //数据报大小为64字节
    //tval = (struct timeval *)icmp->icmp_data;
    //gettimeofday(tval,NULL); //记录发送时间
//校验算法
    icmp->icmp_cksum =  cal_chksum((unsigned short *)icmp,packsize); 
    return packsize;
}

//发送3个ICMP报文
void send_packet()
{
    int packetsize;
    while(nsend tv_sec - sendtime->tv_sec;
    long usec = recvtime->tv_usec - sendtime->tv_usec;
    if(usec >= 0){
        recvtime->tv_sec = sec;
        recvtime->tv_usec = usec;
    }else{ //接受时间usec小于发送时间usec
        recvtime->tv_sec = sec - 1;
        recvtime->tv_usec =1000000+usec;
    }
}

int main(int argc,char *argv[]) //主函数
{
    struct hostent *host=NULL; //host entry,记录主机信息
    struct protoent *protocol=NULL; //
    unsigned long inaddr = 0;
    int waittime = MAX_WAIT_TIME;
    int size = 50 * 1024;

//参数小于两个
    if(argc p_proto)) h_addr,host->h_length);
    }
    else{ //是IP地址
        dest_addr.sin_addr.s_addr = inaddr; /*or memcpy((char *)&dest_addr.sin_addr,argv[1],strlen(argv[1])+1);*/
    }

//获取main的进程id,用于设置ICMP的标志符
    pid = getpid();
    printf("PING %s(%s):%d bytes of data.n",argv[1],inet_ntoa(dest_addr.sin_addr),datalen);
    send_packet(); /*发送所有ICMP报文*/
    recv_packet(); /*接收所有ICMP报文*/
    statistics(SIGALRM); /*进行统计*/
    return 0;
}

|
main 函数里面if(inaddr=inet_addr(argv[1]) == INADDR_NONE)
if((inaddr=inet_addr(argv[1])) == INADDR_NONE)

|
那必然是虚拟机设置的问题了

    
 
 

您可能感兴趣的文章:

  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 如何分析linux宕机原因(或者说如何通过查日志分析宕机原因)
  • Linux死机后怎么通过日志分析死机的原因呢
  • ubuntu Linux 死活下载不了bt东西,网页能下载,什么原因?
  • 装了redhat linux 9 进不去系统 有可能是什么原因
  • linux中刚打开了eclipse就自动关闭是什么原因
  • linux启动不了,Bringup loopback interface时出错,请问是什么原因?
  • 使用putty.exe登录远程linux系统,会自动退出.请问产生的原因.
  • linux系统宕机,原因未知?
  • 请问我的linux在启动时突然说不能启动xwindows了,请教原因?
  • 我的linux上的apache频繁终止服务,请教什么原因
  • linux可以查到系统是什么原因关机的吗?
  • linux服务器做WEB服务器,页面一片空白是什么原因?
  • Linux下怎样查c程序的错误号?程序出现错误:System error 32: Broken Pipe, 是什么原因?
  • 什么原因能导致linux启动慢?
  • LINUX下限制摄像头buffer大小的原因
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 【急】linux 我从我的linux机器用ssh登录到其他机器时,报的这个错是什么原因!
  • linux串口程序可以发送数据,但是不能接受数据?谁知道原因?
  • 我用RAWRITE做LINUX启动盘时失败。原因:IMAGES目录下.img文件太大(2M多)怎么回事?
  • 在Linux下面编译出现以下错误,请帮忙看看是什么原因,多谢了
  • 都说Linux是开源的,在哪可以找到Linux的源码?
  • 在装LINUX时出现未找到创建新文件的有效设备
  • 我想用Linux的串口和S3c2410x连接,请问在Linux里面怎么找到那个超级终端?
  • 我在linux下安装了linux版的realone,但却没法找到如何运行。
  • 请问:哪里能找到linux的源代码
  • linux xchat 怎样找到国内的群
  • 我在Linux上没有找到gcc,等待指点……
  • linux 下怎么才能找到想要的文件?
  • 在哪里可以找到linux源文件?
  • 机器上直接装 linux 驱动程序哪里可以找到
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下通过crond实现自动执行程序
  • Linux和Unix相对WIN、NETWARE有什么好处?他们之间有什么区别?WIN、NETWARE能实现的功能LINUX和UNIX能实现吗?
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐 iis7站长之家
  • linux下如实现与window下的驱动器实现文件共享??
  • Linux内存文件系统(ramdisk)的三种实现方式
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • linux内存文件系统ramfs实现原理
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • Linux 共享内存介绍及实现代码
  • 我需要一个模型,在 LINUX C 下。实现线程间的控制,执行,阻塞,再执行。。。。。不知道如何实现。
  • linux下grep命令实现查找多个关键字(与关系和或关系)
  • 我想做linux下的还原备份,实现与还原精灵虚拟还原等一样的功能,应该怎么做?另外现在有实现这种功能的成熟产品是哪一种?
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 关于linux c程序实现自动实现telnet的问题
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • 请问高手linux中用md5来实现一串字符串的加密,用c++/c实现
  • 在linux实现在任意给定的目录查找文需要的件的程序? 下面的实现思路可不可以呢????
  • 请问:有没有人在Linux下实现过计费网关?
  • 关于XP系统下批处理文件如何实现执行linux下脚本,从而实现版本的自动化编译
  • 如何在linux下实现event事件机制
  • Linux音频, Linux下能否实现 实时语音聊天 ?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,