网络编程试题_第1页
网络编程试题_第2页
网络编程试题_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 TCPB IP

2、C TCP/IPD http4. 以下不属于 socket 的类型的是 ( D ) 。A 流式套接字B 数据报套接字C 原始套接字D 网络套接字5. 以下关于 socket 的描述错误的是 ( C )A 是一种文件描述符B 是一个编程接口C 仅限于 TCP/IPD 可用于一台主机内部不同进程间的通信6. 路由器是根据哪一层的信息为数据包选择路由( C )A物理层B数据链路层C网络层D传输层7.为了解决在不同体系结构的主机之间进行数据传递可能会造成歧义的问题,以下( A ) 函数常常用来。1 欢迎下载精品文档在发送端和接收端对双字节或者四字节数据类型进行字节序转换。A htons()/htonl

3、()/ntohs()/ntohl()B inet_addr()/inet_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 sock

4、et() - bind() - listen() - accept() - read()/write() - close()D socket() - connect() - read()/write() - close()9. 只用于同一主机内部进程间通信的socket 应使用的协议族是 ( B )A AF_INETB AF_UNIXC AF_NSD AF_IMPLINK10. 以下哪个协议不是用在网络层的( D )A IGMPB IPC ICMPD SMTP二、判断题 (15 题,每题1 分 )1. 信号是一种同步通讯方式 ( F )2.可以使用signal() 来给同一进程组中的所有进程发

5、送信号( F )3.从一个空FIFO 中读取数据时会发生阻塞,但从一个空PIPE 中读取数据时不会发生阻塞 ( F )4. IP地址均为 32位( F )5. 大端序表示高位字节存储在高地址( F )6. bind() 函数用于将套接字和某个地址绑定( T )7. connect() 函数既可以用于 TCP,也可以用于 UDP ( T )8. 每个套接字最多只能 connect 一次 ( F )9.为了区分一台主机接收到的网络数据包应该递交给哪个套接字来处理,要根据端口号( T )10.无论是 TCP socket ,还是 UDP socket ,它们的服务器端必须调用bind() 函数来绑定

6、一个地址,这样客户端才可以和服务器端通信( T )11. 发送一个 UDP数据报,必须使用 sendto() 函数 ( F )12.当 inet_addr(char *address)的参数 address 包含不合法的IP 地址时,函数返回0 ( F )阅读以下程序,完成13-15 题。listenfd = socket();bind(listenfd,);。2 欢迎下载精品文档listen(listenfd,);for( ; ; ) connfd = accept(listenfd,);if( pid = fork( ) = 0)recv(connfd,);send(connfd,);el

7、se exit(0);13. 这是一个并发服务器。 ( F )14. 在任何时候,该服务器只能处理一个客户端的请求。( T )15. 随着服务器端接受越来越多的请求,connfd 的值变得越来越大。 ( T )三、简答题 (5 题,每题5 分,共 25 分 )1.如何在并发程序中避免僵尸进程?( 父进程不阻塞,不轮询,描述思路或写出代码)方式一:在父进程中忽略SIGCHLD信号方式二:在父进程中捕捉SIGCHLD信号,并在信号处理函数中用waitpid回收子进程2. 两个线程分别读写同一个缓冲区,初始时缓冲区中无数据。( read()/读缓冲区write() /写缓冲区sem_t /信号量类型

8、void init_sem(sem_t *s, int value)/初始化信号量s 的值为 valuevoid 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);。3 欢迎下载精品文档读线程读缓冲区的代码p(&sem_r);read();v(&sem_w);3. 简述 TCP和 UDP的异同点相同点:都是传输层协议不同点: tc

9、p 协议面向连接,提供可靠的传输;udp 协议无连接,不保证可靠的传输4. 什么是高可靠性通信?数据无错误、数据无丢失、数据无失序、数据无重复到达5.简述 UNIX/Linux下主要的四种IO 模型的特点阻塞式 IO 非阻塞式 IO IO 多路复用信号驱动 IO:最简单、最常用;效率低:可以处理多路IO;需要轮询,浪费CPU资源:同时出路多路IO 且不需要轮询:异步通知模式,需要底层驱动的支持四、综合题 (3 题,共 40 分,编程题可省略头文件)1.什么是网络体系结构?画出 OSI 和 TCP/IP 参考模型的对应关系图(包括每层常用的协议或应2. 编写一个 TCP并发服务器端 程序,可以把客户端发来的消息回射给客户端(15 分)3. 编写 UDP程序,通过多路 IO 复用同时处理标准输入和套接字。当输入为quit时程序结束;当通过套接字收到对方消息时回射给对方(15分 )int select(intnfds, fd_set *readfds,fd_set *writefds,fd_set*exceptfds,struct timeval*timeval);void FD_CLR(int fd, fd_set *set);int FD_I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论