欢迎来到天天文库
浏览记录
ID:38719484
大小:55.50 KB
页数:4页
时间:2019-06-18
《网络编程试题-参考答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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]TC
2、P[B]IP[C]TCP/IP[D]http4.以下不属于socket的类型的是(D)。[A]流式套接字[B]数据报套接字[C]原始套接字[D]网络套接字5.以下关于socket的描述错误的是(C)[A]是一种文件描述符[B]是一个编程接口[C]仅限于TCP/IP[D]可用于一台主机内部不同进程间的通信6.路由器是根据哪一层的信息为数据包选择路由(C)[A]物理层[B]数据链路层[C]网络层[D]传输层7.为了解决在不同体系结构的主机之间进行数据传递可能会造成歧义的问题,以下(A)函数常常用来在发送端和接收端对双字节或者四字节数
3、据类型进行字节序转换。[A]htons()/htonl()/ntohs()/ntohl()[B]inet_addr()/inet_aton()/inet_...[C]gethostbyname()/gethostbyaddr()[D](structsockaddr*)&(structsockaddr_in类型参数)1.在实现基于TCP的网络应用程序时,服务器端正确的处理流程是(C)[A]socket()->bind()->listen()->connect()->read()/write()->close()[B]socket(
4、)->bind()->listen()->read()/write()->close()[C]socket()->bind()->listen()->accept()->read()/write()->close()[D]socket()->connect()->read()/write()->close()2.只用于同一主机内部进程间通信的socket应使用的协议族是(B)[A]AF_INET[B]AF_UNIX[C]AF_NS[D]AF_IMPLINK3.以下哪个协议不是用在网络层的(D)[A]IGMP[B]IP[C]ICM
5、P[D]SMTP一、判断题(15题,每题1分)1.信号是一种同步通讯方式(F)2.可以使用signal()来给同一进程组中的所有进程发送信号(F)3.从一个空FIFO中读取数据时会发生阻塞,但从一个空PIPE中读取数据时不会发生阻塞(F)4.IP地址均为32位(F)5.大端序表示高位字节存储在高地址(F)6.bind()函数用于将套接字和某个地址绑定(T)7.connect()函数既可以用于TCP,也可以用于UDP(T)8.每个套接字最多只能connect一次(F)9.为了区分一台主机接收到的网络数据包应该递交给哪个套接字来处理
6、,要根据端口号(T)10.无论是TCPsocket,还是UDPsocket,它们的服务器端必须调用bind()函数来绑定一个地址,这样客户端才可以和服务器端通信(T)11.发送一个UDP数据报,必须使用sendto()函数(F)12.当inet_addr(char*address)的参数address包含不合法的IP地址时,函数返回0(F)阅读以下程序,完成13-15题。┋listenfd=socket(…);bind(listenfd,…);listen(listenfd,…);for(;;){connfd=accept(li
7、stenfd,…);if((pid=fork())==0){recv(connfd,…);send(connfd,…);}elseexit(0);}1.这是一个并发服务器。(F)2.在任何时候,该服务器只能处理一个客户端的请求。(T)3.随着服务器端接受越来越多的请求,connfd的值变得越来越大。(T)三、简答题(5题,每题5分,共25分)1.如何在并发程序中避免僵尸进程?(父进程不阻塞,不轮询,描述思路或写出代码)方式一:在父进程中忽略SIGCHLD信号方式二:在父进程中捕捉SIGCHLD信号,并在信号处理函数中用waitp
8、id回收子进程2.两个线程分别读写同一个缓冲区,初始时缓冲区中无数据。(read()//读缓冲区write()//写缓冲区sem_t//信号量类型voidinit_sem(sem_t*s,intvalue)//初始化信号量s的值为valuevoidp(sem_t
此文档下载收益归作者所有