网络编程试题答案.docx

上传人:b****3 文档编号:26516704 上传时间:2023-06-20 格式:DOCX 页数:13 大小:71.69KB
下载 相关 举报
网络编程试题答案.docx_第1页
第1页 / 共13页
网络编程试题答案.docx_第2页
第2页 / 共13页
网络编程试题答案.docx_第3页
第3页 / 共13页
网络编程试题答案.docx_第4页
第4页 / 共13页
网络编程试题答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

网络编程试题答案.docx

《网络编程试题答案.docx》由会员分享,可在线阅读,更多相关《网络编程试题答案.docx(13页珍藏版)》请在冰豆网上搜索。

网络编程试题答案.docx

网络编程试题答案

网络编程试题答案

一:

选择题(共10小题,每小题3分)

1)路由器工作在哪一层(B)

A:

链路层B:

网络层C:

传输层D:

应用层

2)一台主机要实现通过局域网与另一个局域网通信,需要做的工作是(C)。

A:

配置域名服务器

B:

定义一条本机指向所在网络的路由

C:

定义一条本机指向所在网络网关的路由

D:

定义一条本机指向目标网络网关的路由

3)下列提法中,不属于ifconfig命令作用范围的是(D)。

A:

配置本地回环地址B:

配置网卡的IP地址

C:

激活网络适配器D:

加载网卡到内核中

4)下面的网络协议中,面向连接的的协议是:

(A)。

A:

传输控制协议B:

用户数据报协议

C:

网际协议D:

网际控制报文协议

5)在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是(C)

A主机IP设置有误

B没有设置连接局域网的网关

C局域网的网关或主机的网关设置有误

D局域网DNS服务器设置有误

6)DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配___D______地址。

A:

UDPB:

MACC:

TCPD:

IP

7)在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中,(B)是能够实现本地与远程主机之间的文件传输工作。

AtelnetBFTPC:

SNMPD:

NFS

8)当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是(C)。

A:

pingB:

ifconfigC:

tracerouteD:

netstat

9)关于代理服务器的论述,正确的是(A)。

A:

使用internet上已有的公开代理服务器,只需配置客户端。

B:

代理服务器只能代理客户端http的请求。

C:

设置好的代理服务器可以被网络上任何主机使用。

D:

使用代理服务器的客户端没有自己的ip地址。

10)公司需要把192.168.3.0/255.255.255网段划分成10个子网,子网掩码应该是?

(C)

A:

255.255.255.5B:

255.255.255.4

C:

255.255.255.240D:

255.255.255.248

二:

填空题(本题共5小题,每空1分共10分)

1)网络192.168.220.0/24定向广播地址是(192.168.220.255),受限的广播地址为(255.255.255.255),定向广播和受限广播的区别(只要路由器可以转发定向广播信息可以向其它子网广播信息,而路由器从来不转发受限的广播信息);

2)在tcp/ip模型中进程到进程之间通信属于(传输)层,主机到主机属于(网络)层,设备到设备属于(数据链路)层,程序到程序属于(应用)层。

3)Ping命令的功能为(可以测试网络中本机系统是否能到达一台远程主机,所以常常用于测试网络的连通性)。

4)进行远程登录的命令是(telnet)

5)DNS域名系统的作用是(主机用户名和IP地址之间相互转化)。

三:

问答题(本题共4小题,每题6分共24分)

1)简述TCP/IP协议中各层的主要功能,各有哪些主要协议。

答:

网络接口层:

实现设备与设备之间的通信

网络层:

实现主机与主机之间的通信IP,ARP,RARP,ICMP

传输层:

实现进程与进程之间的通信TCP,UDP

应用层:

实现应用程序HTTP,SMTP,DNS,SNMP,FNS,FTP

2)什么是TCP、UDP?

协议优缺点,应用场合?

1:

用户数据报协议UDP(UserDatagramProtocol)

UDP协议是面向无连接的用户数据报协议,在传输数据之前不需要先建立连接。

远地主机的运输层收到UDP报文后,不需要给出任何确认。

2:

传输数据报协议TCP(TransmissionControlProtocol)

TCP则提供面向连接的服务。

在传输数据前必须先建立连接,数据传输完毕后要释放连接。

区别:

是否面向连接:

Tcp面向连接,udp是面向无连接

是否可靠:

Tcp可靠,udp不可靠

应用场合:

Tcp应用于传输大量数据,udp用于传输少量数据

速度:

Tcp的速度慢,udp的速度快

是否能够广播:

tcp不能,udp能广播

tcp是基于连接的,速度慢,有校验等,所以传送相同的数据,要比UDP发送的包多很多

3)简述TCP/IP协议中三次握手的过程及涵义

第一次握手:

建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

二次握手:

服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

三次握手:

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

4)简述TCP/IP模型中,利用传输控制协议发送数据,应用层数据从主机A发送到主机B的整个过程。

答:

1、首先是主机A通过connect()函数发送连接请求,主机B的accept()函数接受到请求。

此时建立了连接。

2、主机A将数据写如套接口。

3、主机B从套接口读取数据,并保存。

4、数据发送完毕后,主机A关闭套接口。

5、主机B关闭套接口。

四:

程序题(共三小题,第一题16分,二三题10分共36分)

1)利用setsocketopt()使用嵌套字支持广播,并编写两个程序,其中一个发送广播数据,另一个接收广播数据。

#include

#include

#include//bzero

#include

#include

#include

#include//inet_ntop

#include

#include

//#defineMAX1024*1024

intmain(intargc,char*argv[])

{

structsockaddr_insrvAddr;

intsocked=socket(AF_INET,SOCK_DGRAM,0);

unsignedshortport=8000;

charsendbuf[1024]="",recvbuf[1024]="";

intbroadcast_en=1;

socklen_tbroadcast_len=sizeof(broadcast_en);

size_tlen=sizeof(srvAddr);

bzero(&srvAddr,sizeof(srvAddr));

srvAddr.sin_family=AF_INET;

srvAddr.sin_port=htons(port);

srvAddr.sin_addr.s_addr=inet_addr("192.168.220.255");

if(socked<0)

{

perror("socket");

exit

(1);

}

printf("UDPServerStartedatport%d!

\n",port);

if((setsockopt(socked,SOL_SOCKET,SO_BROADCAST,&broadcast_en,broadcast_len))<0)

{

perror("setsockopt");

exit

(1);

}

while

(1)

{

printf("输入数据:

");

fgets(sendbuf,1024,stdin);

sendbuf[strlen(sendbuf)-1]='\0';

sendto(socked,sendbuf,strlen(sendbuf),0,(structsockaddr*)&srvAddr,(socklen_t)len);

}

}

#include

#include

#include//bzero

#include

#include

#include

#include//inet_ntop

#include

#include

//#defineMAX1024*1024

intmain(intargc,char*argv[])

{

structsockaddr_insrvAddr;

intsocked=socket(AF_INET,SOCK_DGRAM,0);

unsignedshortport=8000;

charrecvbuf[1024]="";

intbroadcast_en=1;

socklen_tbroadcast_len=sizeof(broadcast_en);

size_tlen=sizeof(srvAddr);

bzero(&srvAddr,sizeof(srvAddr));

srvAddr.sin_family=AF_INET;

srvAddr.sin_port=htons(port);

srvAddr.sin_addr.s_addr=inet_addr("192.168.220.255");

if(socked<0)

{

perror("socket");

exit

(1);

}

printf("UDPServerStartedatport%d!

\n",port);

printf("Bindingservertoport%d\n",port);

if((bind(socked,(structsockaddr*)&srvAddr,(socklen_t)len))<0)

{

perror("bind");

exit

(1);

}

while

(1)

{

if((recvfrom(socked,recvbuf,strlen(recvbuf),0,(structsockaddr*)&srvAddr,

(socklen_t*)&len))<0)

{

perror("recvfrom");

exit

(1);

}

else

printf("%s\n",recvbuf);

}

}

 

2)写一个TCP并发的服务器,实现echo功能。

#include

#include

#include//bzero

#include

#include

#include

#include//inet_ntop

//=============================================================

//语法格式:

voidmain(void)

//实现功能:

主函数,建立一个TCPEchoServer

//入口参数:

//出口参数:

//=============================================================

intmain(intargc,char*argv[])

{

charrecvbuf[2048];//接收缓冲区

intsockfd;//套接字

structsockaddr_inservAddr;//服务器地址结构体

unsignedshortport=8000;//监听端口

if(argc>1)//由参数接收端口

{

port=atoi(argv[1]);

}

printf("TCPServerStartedatport%d!

\n",port);

sockfd=socket(AF_INET,SOCK_STREAM,0);

//创建TCP套接字

if(sockfd<0)

{

perror("Invalidsocket");

exit

(1);

}

bzero(&servAddr,sizeof(servAddr));//初始化服务器地址

servAddr.sin_family=AF_INET;

servAddr.sin_port=htons(port);

servAddr.sin_addr.s_addr=htonl(INADDR_ANY);

printf("Bindingservertoport%d\n",port);

if(bind(sockfd,(structsockaddr*)&servAddr,sizeof(structsockaddr))!

=0)

{

close(sockfd);

perror("bindingerr");

exit

(1);

}

if(listen(sockfd,1)!

=0)

{

close(sockfd);

perror("listenerr");

exit

(1);

}

printf("waitingclient...\n");

while

(1)

{

charcliIP[INET_ADDRSTRLEN];//用于保存客户端IP地址

size_trecvLen;

structsockaddr_incliAddr;//用于保存客户端地址

size_tcliAddrLen=sizeof(cliAddr);

//必须初始化!

!

!

intconnfd=accept(sockfd,(structsockaddr*)&cliAddr,&cliAddrLen);

//获得一个已经建立的连接

if(connfd<0)

{

close(sockfd);

perror("accepterr!

");

exit

(1);

}

if(fork()==0)

{

close(sockfd);

inet_ntop(AF_INET,&cliAddr.sin_addr.s_addr,cliIP,INET_ADDRSTRLEN);

printf("clientip=%s\n",cliIP);

while((recvLen=read(connfd,recvbuf,2048))>0)

{

write(connfd,recvbuf,recvLen);

}

printf("clientclosed!

\n");

exit(0);

}

close(connfd);

}

close(sockfd);

return0;

if(bind(sockfd,(structsockaddr*)&bindAddr,sizeof(bindAddr))!

=0)

{

close(sockfd);

printf("bindingerr!

\n");

exit

(1);

}

printf("waitingdatafromotherclient...\n");

while

(1)

{

charrecvBuf[2048];

charcliIP[INET_ADDRSTRLEN];

size_trecvLen;

structsockaddr_incliAddr;

size_tcliAddrLen=sizeof(cliAddr);

recvLen=recvfrom(sockfd,recvBuf,2048,0,(structsockaddr*)&cliAddr,&cliAddrLen);

printf("clientip=%s\n",inet_ntop(AF_INET,&cliAddr.sin_addr.s_addr,cliIP,INET_ADDRSTRLEN));

sendto(sockfd,recvBuf,recvLen,0,(structsockaddr*)&cliAddr,cliAddrLen);

}

close(sockfd);

return0;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1