首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个简单的使用RAWSOCKET实现的ping程序,填入(n)处。 /*simple ping program*/ struct sockaddr_in saddr; int rawsock; unsigned short i
下面是一个简单的使用RAWSOCKET实现的ping程序,填入(n)处。 /*simple ping program*/ struct sockaddr_in saddr; int rawsock; unsigned short i
admin
2009-05-15
64
问题
下面是一个简单的使用RAWSOCKET实现的ping程序,填入(n)处。
/*simple ping program*/
struct sockaddr_in saddr;
int rawsock;
unsigned short in_cksum(unsigned short*addr, int len)
{ int sum=0;
unsigned short res=0;
while(1en>1){
sum+=*addr++; len-=2;
}
if(len=1){
*((unsigned char *)(&res))=*((unsigned char *)addr); sum+=res;
}
sum=(sum>>16)+(sam & 0xffff);
sum+=(sum>>16); res=~sum;
return res;
}
void ping(int signo)
{
int len;
int i;
static unsigned short seq=0;
char buff[8192];
struct timeval tv;
struet icmp*icmph=(struct icmp * )buff;
long*data=(long*)icmph→icmp_data;
bzero(buff, 8192);
gettimeofday(&tv, NULL);
icmph→icmp_type=ICMP_ECHO;
icmph→icmp_code=0;
icmph→icmp_cksum=0;
icmph→icmp_id=0;
icmph→icmp_seq=0;
icmph→icmp_id=getpid()&0xffff;
icmph→icmp_seq=seq++;
data[0]=tv.tv_sec;
data[1]=tv.tv_usec;
for(i=8; i< ; i++)
icmph→icmp_data
=(unsigned char)i;
icmph→icmp_cksum=in_cksum((unsigned short *)buff, ? 72);
len; sendto(rawsock, buff, 72, 0, &saddr, sizeof(saddr));
alarm(1);
}
void sigint(int signo)
{ printf("CATCH SIGINT !!! \n");
close(rawsock);
exit(0);
}
void dumppkt(char*buf, int len)
{ struct ip*iph=(struct ip*)buf;
int i=iph→ip_h1*4;
struct icmp*icmph=(struct icmp*)&buf
;
long*data=(long*)iemph→icmp_data;
struct timeval tv;
gettimeofday(&tv, NULL);
if(icmph→icmp_type! =ICMP_ECHOREPLY)
return;
if(icmph→icmp_id! =(getpid()&0xffff))
return;
printf("From %s:ttl=% d seq=% d time=%.2f ms\n",
inet_ntoa(iph→ip_src),iph→ip_ttl?,
icmph→icmp_seq,
(tv.tv_see-data[0])*1000.0+(tv.tv_usec-data[0])/1000.0);
}
int main(int argc, char*argv[])
{ int len;
stuct timeval now;
char recvbuff[8192];
if(1){
printf("%s aaa.bbb.ccc.ddd\n", argv[0]);
exit(1);
}
rawsock=soeket(AF_INET, (2), IPPROTO_ICMP);
if(rawsock<0) {
perror("soeket");
exit(1);
}
bzero ( &saddr, sizeof(saddr));
saddr.sin_family=(3);
if( inet_aton( argv[1], &saddr.sin_addr) <0) {
printf("invalid IP address: %s\n", argv[1]);
exit(1);
}
signal(SICALRM, ping);
signal(SICINT, sigint);
alarm(1);
while (1){
len=read (4), recvbuff, 8192);
if( len<0 && errno=EINTR)
continue;
else it( len<0)
perror("read");
else if( len>0)
dumppkt(recvbuff, len);
}
close (5);
exit(0);
}
选项
答案
(1)argc !=2 //判断参数个数是否为2; (2)SOCK_RAW //指定套接字类型为SOCK_RAW; (3)AF_INET //指定通信发生的区域是网际网区域; (4)Rawsock //指定套接字; (5)rawsock //关闭套接字。
解析
转载请注明原文地址:https://kaotiyun.com/show/b1JZ777K
本试题收录于:
网络工程师上午基础知识考试题库软考中级分类
0
网络工程师上午基础知识考试
软考中级
相关试题推荐
(2009年下半年)(23)是将存储设备与服务器直接连接的存储模式。
(2012年下半年)(41)是定义项目范围、定义项目组织,设定项目产品质量和规格、估算和控制项目费用、估算项目时间周期和进度安排的基础。
进度控制的一个重要作用是______。
某活动的工期采用三点估算法进行估算,其中最悲观估算是23天,最乐观估算是15天,最可能的估算是19天,则该活动的历时大致需要(1)天,该活动历时方差大概是(2)。(1)
(2012年下半年)政府机构利用Intranet建立有效的行政办公和员工管理体系,以提高政府工作效率服务和公务员管理水平,这种电子政务的模式是(4)。
在项目可行性研究内容中,_____________包括制定合理的项目实施进度计划、设计合理的组织结构、选择经验丰富的管理人员、建立良好的协作关系、制订合适的培训计划等内容。
某政府部门要进行采购招标,其招标的部分流程如下:关于上述招标流程,下面说法正确的是____________。
E-mail客户端程序要找到邮件服务器,FTP客户端程序要找到FTP服务器,Web浏览器要找到Web服务器,通常要用到______________。
根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。房间(房间号,收费标准,床位数目)客人(身份证号,姓名,性别,出生日期,地址)住宿((1),入住日期,退房日期,预付款额)为提交SQL语句的执行效
随机试题
可作为急性胰腺炎诊断指标的是
由三层材料组成的复合大平壁,三层材料的导热系数为常数,并依次由小到大,在稳态情况下通过各层材料的热流密度()。
(2005年)三相交流异步电动机可带负载启动,也可空载启动。比较两种情况下,电动机的启动电流IS1的大小()。
对于民间借贷活跃地区,农村信用社贷款利率可以灵活浮动,在基准利率基础上的()浮动。
小云是某高校大一新生,来自偏远山区的贫困家庭。入学后,小云不仅感到经济压力大,还觉得自己外表一般,穿着土气,说话有口音,原来引以为傲的学习成绩也不再突出,因而变得自卑、焦虑,常常失眠,担心自己不能完成学业。针对小云的这种状况,社会工作者可以为她提供的教育救
对取保候审保证人的罚款决定,由公安机关作出。()
2011年1—6月份,全国规模以上工业企业实现利润24105亿元,同比增长28.7%。在规模以上工业企业中,国有及国有控股企业实现利润7784亿元,同比增长20.2%;集体企业实现利润386亿元,同比增长33.8%;股份制企业实现利润13772亿元,同
中国的英文名称“CHINA”的小写就是“瓷器”的意思,“CHINA”的英文发音源自景德镇的历史名称“昌南”,并以此突出景德镇瓷器在世界上的影响和地位。以下不属于景德镇四大传统名瓷的是:
函数f(x)=ax+log2(x+1)在[0,1]上的最大值和最小值之和为a,则a的值是[].
Nearlyall"speedreading"courseshavea"pacing"element—sometimingdevicewhichletsthestudentknowhowmanywordsaminut
最新回复
(
0
)