《(完整word版)网络编程试题-参考答案(word文档良心出品).pdf》由会员分享,可在线阅读,更多相关《(完整word版)网络编程试题-参考答案(word文档良心出品).pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华清远见嵌入式学院第二学期期中考试一、选择题(10 题,每题2 分,共 20 分)1.如果进程A 调用 fork 函数,创建进程B,然后进程B 再调用 fork 函数,创建进程C,进程 C 调用exec 执行新的程序,那么各个进程将以什么顺序来执行:(D)。A 以 A、B、C 的顺序执行B 以 C、B、A 的顺序执行C 以 B、C、A 的顺序执行D 无固定执行顺序2.以下对早期ARPAnet 的描述不正确的是(D)A 使用 NCP 协议B 不能互联不同类型的计算机C 没有纠错功能D 可以互联不同类型的操作系统3.Internet中的世界语是(C)A TCP B IP C TCP/IP D ht
2、tp 4.以下不属于socket 的类型的是(D)。A 流式套接字B 数据报套接字C 原始套接字D 网络套接字5.以下关于socket 的描述错误的是(C)A 是一种文件描述符B 是一个编程接口C 仅限于 TCP/IP D 可用于一台主机内部不同进程间的通信6.路由器是根据哪一层的信息为数据包选择路由(C)A 物理层B 数据链路层C 网络层D 传输层7.为了解决在不同体系结构的主机之间进行数据传递可能会造成歧义的问题,以下(A)函数常常用来在发送端和接收端对双字节或者四字节数据类型进行字节序转换。A htons()/htonl()/ntohs()/ntohl()B inet_addr()/in
3、et_aton()/inet_.C gethostbyname()/gethostbyaddr()D(struct sockaddr*)&(struct sockaddr_in类型参数)8.在实现基于TCP 的网络应用程序时,服务器端正确的处理流程是(C)A socket()-bind()-listen()-connect()-read()/write()-close()B socket()-bind()-listen()-read()/write()-close()C socket()-bind()-listen()-accept()-read()/write()-close()D sock
4、et()-connect()-read()/write()-close()9.只用于同一主机内部进程间通信的socket 应使用的协议族是(B)A AF_INET B AF_UNIX C AF_NS D AF_IMPLINK 10.以下哪个协议不是用在网络层的(D)A IGMP B IP C ICMP D SMTP 二、判断题(15 题,每题1 分)1.信号是一种同步通讯方式(F)2.可以使用signal()来给同一进程组中的所有进程发送信号(F)3.从一个空FIFO 中读取数据时会发生阻塞,但从一个空PIPE 中读取数据时不会发生阻塞(F)4.IP 地址均为32 位(F)5.大端序表示高位字
5、节存储在高地址(F)6.bind()函数用于将套接字和某个地址绑定(T)7.connect()函数既可以用于TCP,也可以用于UDP(T)8.每个套接字最多只能connect 一次(F)9.为了区分一台主机接收到的网络数据包应该递交给哪个套接字来处理,要根据端口号(T)10.无论是 TCP socket,还是 UDP socket,它们的服务器端必须调用bind()函数来绑定一个地址,这样客户端才可以和服务器端通信(T)11.发送一个UDP 数据报,必须使用sendto()函数(F)12.当 inet_addr(char*address)的参数 address包含不合法的IP 地址时,函数返回
6、0(F)阅读以下程序,完成13-15 题。listenfd=socket();bind(listenfd,);文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2
7、B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X1
8、0文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:
9、CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N
10、10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6
11、 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7
12、U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10listen(listenfd,);for(;)connf
13、d=accept(listenfd,);if(pid=fork()=0)recv(connfd,);send(connfd,);else exit(0);13.这是一个并发服务器。(F)14.在任何时候,该服务器只能处理一个客户端的请求。(T)15.随着服务器端接受越来越多的请求,connfd 的值变得越来越大。(T)三、简答题(5 题,每题5 分,共 25 分)1.如何在并发程序中避免僵尸进程?(父进程不阻塞,不轮询,描述思路或写出代码)方式一:在父进程中忽略SIGCHLD 信号方式二:在父进程中捕捉SIGCHLD 信号,并在信号处理函数中用waitpid 回收子进程2.两个线程分别读写同一
14、个缓冲区,初始时缓冲区中无数据。(read()/读缓冲区write()/写缓冲区sem_t/信号量类型void init_sem(sem_t*s,int value)/初始化信号量s 的值为 value void p(sem_t*s)/对信号量s 进行 p 操作void v(sem_t*s)/对信号量s 进行 v 操作)定义需要的信号量并初始化sem_t s_r,s_w;init_sem(&s_r,0);init_sem(&s_w,1);写线程写缓冲区的代码p(&sem_w);write();v(&sem_r);文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X1
15、0文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:
16、CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N
17、10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6
18、 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7
19、U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7
20、 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2
21、B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10读线程读缓冲区的代码p(&sem_r);read();v(&sem_w);3.简述 TCP 和 UDP 的异同点相同点:都是传输层协议不同点:tcp 协议面向连接,提供可靠的传输;udp 协议无连接,不保证可靠的传输4.什么是高可靠性通信?数据无错误
22、、数据无丢失、数据无失序、数据无重复到达5.简述 UNIX/Linux下主要的四种IO 模型的特点阻塞式 IO:最简单、最常用;效率低非阻塞式IO:可以处理多路IO;需要轮询,浪费CPU 资源IO 多路复用:同时出路多路IO 且不需要轮询信号驱动IO:异步通知模式,需要底层驱动的支持四、综合题(3 题,共 40 分,编程题可省略头文件)1.什么是网络体系结构?画出 OSI 和 TCP/IP 参考模型的对应关系图(包括每层常用的协议或应2.编写一个TCP 并发服务器端程序,可以把客户端发来的消息回射给客户端(15 分)3.编写 UDP 程序,通过多路IO 复用同时处理标准输入和套接字。当输入为q
23、uit 时程序结束;当通过套接字收到对方消息时回射给对方(15 分)int select(int nfds,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,struct timeval*timeval);void FD_CLR(int fd,fd_set*set);int FD_ISSET(int fd,fd_set*set);void FD_SET(int fd,fd_set*set);void FD_ZERO(fd_set*set);文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10
24、V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 H
25、H9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2
26、V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 Z
27、X7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1
28、L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文
29、档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10文档编码:CA3Z2N10V5U6 HH9N7U2V9P7 ZX7P2B1L8X10