首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个简单的使用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
56
问题
下面是一个简单的使用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://www.kaotiyun.com/show/b1JZ777K
本试题收录于:
网络工程师上午基础知识考试题库软考中级分类
0
网络工程师上午基础知识考试
软考中级
相关试题推荐
以下关于基线和配置项的叙述中,不正确的是:______。
(2010年下半年)工作流(workflow)需要依靠(30)来实现,其主要功能是定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。
云服务是基于互联网的相关服务的增加、使用和交付模式。我们经常使用的Gmail、网上相册等属于(20)。
如果某信息系统集成项目的客户、集成商、厂商等一系列合作伙伴全都已经把业务部署在各自的Internet网站上,而现在某客户希望可以把自己的IT业务系统通过Internet与这些合作伙伴实现B2B集成,那么该系统最适合采用的技术是______。
根据《国家电子政务工程建设项目管理暂行办法》,项目设计方案和投资预算、报告的编制内容与项目可行性研究报告批复内容不符合,且变更投资一旦超出已批复总投资额度____________的应重新撰写可行性研究报告。
使用网上银行卡支付系统付款与使用传统信用卡支付系统付款,两者的付款授权方式是不同的,下列论述正确的是(64)。
网络协议和设备驱动软件经常采用分层架构模式,其主要原因是()。
在网络存储结构中,()成本较高、技术较复杂,适用于数据量大、数据访问速度要求高的场合。
某公司正在编制项目干系人沟通的计划,以下选项中______属于干系人沟通计划的内容。①干系人需要哪些信息②各类项目文件的访问路径③各类项目文件的内容④各类项目文件的接受格式⑤各类文件的访问权限
(2010年上半年)Perfect项目建设内容包括机房的升级改造、应用系统的开发以及系统的集成等。招标人于2010年3月25日在某国家级报刊上发布了招标公告,并规定4月20日上午9时为投标截止时间和开标时间。系统集成单位A、B、C购买了招标文件。在4月10
随机试题
试述申请人在哪些情况下可以申请免验?
建设中国特色社会主义事业的根本力量是()
中性粒细胞碱性磷酸酶降低见于
若企业2009年的经营性资产为600万元,经营性负债为200万元,销售收入为1000万元,若经营性资产、经营性负债占销售收入的百分比不变,销售净利率为10%,股利支付率为50%,若预计2010年销售收入会达到1500万元,则需要从外部筹集的资金是(
公开募集基金的备案应符合下列()条件。Ⅰ.封闭式基金募集的基金份额总额达到准予注册规模的60%以上Ⅱ.封闭式基金募集的基金份额总额达到准予注册规模的80%以上Ⅲ.开放式基金募集的基金份额总额超过准予注册的最低募集份额总额Ⅳ.基金
股份支付中通常涉及可行权条件,其中业绩条件又可分为市场条件和非市场条件,下列各项属于非市场条件的有()。
通过创设良好的情景,潜移默化地培养学生思想品德的方法是()。
《产品质量法》规定合格产品应具备的条件包括()。
《刑法》第382条规定:“国家工作人员利用职务上的便利,侵吞、窃取、骗取或者以其他手段非法占有公共财物的,是贪污罪。受国家机关、国有公司、企业、事业单位、人民团体委托管理、经营国有财产的人员,利用职务上的便利,侵吞、窃取、骗取或者以其他手段非法占
ABiologicalClockEverylivingthinghaswhatscientistscallabiologicalclockthatcontrolsbehavior.Thebiologicalclo
最新回复
(
0
)