网络编程试题

上传人:工**** 文档编号:462763031 上传时间:2022-10-07 格式:DOCX 页数:4 大小:16.59KB
返回 下载 相关 举报
网络编程试题_第1页
第1页 / 共4页
网络编程试题_第2页
第2页 / 共4页
网络编程试题_第3页
第3页 / 共4页
网络编程试题_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《网络编程试题》由会员分享,可在线阅读,更多相关《网络编程试题(4页珍藏版)》请在金锄头文库上搜索。

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 协议C 没有纠错功能B 不能互联不同类型的计算机D 可以互联不同类型的操作系统3. In ter net中的世界语是(C )D httpA TCPB IPC TCP/IP4.以下不属于socke

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

3、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(

4、)/write() - close()D socket() - connect() - read()/write() - close()9. 只用于同一主机内部进程间通信的socket应使用的协议族是(B )A AF_INET B AF_UNIX C AF_NS D AF_IMPLINK10. 以下哪个协议不是用在网络层的 ( D )A IGMP B IP C ICMP D SMTP二、 判断题(15题,每题1 分)1. 信号是一种同步通讯方式 ( F )2. 可以使用signal()来给同一进程组中的所有进程发送信号(F )3. 从一个空FIFO中读取数据时会发生阻塞,但从一个空PIPE中读

5、取数据时不会发生阻塞(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()函数来绑定一个地址,这样 客户端才可以和服务器端通信 ( T )11. 发送一个UDP数据报,必须使用sendt

6、o()函数(F )12. 当inet_addr(char *address)的参数address包含不合法的IP地址时,函数返回0 ( F )阅读以下程序,完成13-15 题。IIIIlistenfd = socket(.);bind(listenfd,.);listen(listenfd,.);for ( ; ; ) connfd = accept(listenfd, . );if ( pid = fork( ) = 0)recv(connfd,. ); send(connfd,. );else exit(0);13. 这是一个并发服务器。( F )14. 在任何时候,该服务器只能处理一个客

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

8、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); 读线程读缓冲区的代码 p(&sem_r); read(); v(&sem_w);3. 简述TCP和UDP的异同点相同点:都是传输层协议不同点:tcp协议面向连接,提供可靠的传输;udp协议无连接,不保证可靠的传输4. 什么是高可靠性通信?数据无错误、数据无丢失、数据无失序、数据无重复到达5.

9、 简述UNIX/Linux下主要的四种10模型的特点阻塞式 IO :最简单、最常用;效率低非阻塞式I0 :可以处理多路10;需要轮询,浪费CPU资源I0多路复用:同时出路多路I0且不需要轮询信号驱动 I0 :异步通知模式,需要底层驱动的支持四、综合题(3 题,共 40分,编程题可省略头文件)1. 什么是网络体系结构? 画出 0SI 和 TCP/IP 参考模型的对应关系图(包括每层常用的协议或应2.编写一个TCP并发服务器端程序,可以把客户端发来的消息回射给客户端(15分)3. 编写UDP程序,通过多路I0复用同时处理标准输入和套接字。当输入为quit时程序结束;当通 过套接字收到对方消息时回射给对方 (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_ZER0(fd_set *set);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号