网络程序设计试题A卷- 最新版本.doc_第1页
网络程序设计试题A卷- 最新版本.doc_第2页
网络程序设计试题A卷- 最新版本.doc_第3页
网络程序设计试题A卷- 最新版本.doc_第4页
网络程序设计试题A卷- 最新版本.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

西安电子科技大学网络程序设计试题 (2013年A卷)考试时间 120 分钟 试卷编号 班级 学号 姓名 任课老师姓名 题号一二三四五六七总 分得分一、 单选题(102分=20分)1以下字段中,不属于IP首部的是 A. 协议类型B. 生存时间C. 源IP地址D. 目的端口号2以下函数中,不会产生阻塞的是 A. send( )B. sendto( )C. connect( )D. listen( )3进程A是进程B的父进程,当A正在运行时B退出,下列叙述中正确的是 A进程A也将退出B进程A将收到SIGCHLD信号D 进程A将收到SIGKILL信号D进程A会成为僵尸进程4整数0x12345678在little-endian字节序主机内存中的存储形式是_(注:内存由低到高)A. 12 34 56 78B. 78 56 34 12C. 34 12 78 56D. 56 78 12 345使用信号驱动I/O时哪一个不是必须要执行的操作 A为信号SIGIO关联一个信号处理函数B设置套接字为非阻塞模式C设置套接字所有者D允许套接字进行信号驱动I/O6对使用UDP协议的套接字调用connect函数,下面叙述中正确的是 Aconnect函数将阻塞Bconnect函数将导致3次握手操作Cconnect函数记录对方的IP地址和端口后立刻返回D不能对使用UDP协议的套接字描述符调用connect函数7对函数调用send(sockfd,“12xyz”,5,MSG_OOB)的描述中正确的是 A只有字符z被写入发送缓冲区B只有字符串12xy被写入发送缓冲区C字符串12xyz中的每个字符都将作为带外数据发送DTCP协议发送的下一个报文段中URG标志将置位8在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明 A对于只有一个IP地址的主机,使用“”地址B对于有多个网卡的主机,使用其中任意一个IP地址C对于有多个网卡的主机,表示所有IP地址,并处理所有地址的请求D以上均不对9请求建立连接时TCP包头中的_标志位有效A. SYNB. RSTC. PSHD. URG 10当通信的对方关闭其写通道时,TCP套接字的读函数read( )将_ _A.返回大于0的整数B.返回小于0的整数C.阻塞D.返回0 二、 判断下面命题的正确性,对不正确的命题,说明错误原因(52=10分)1 一般情况下,守护进程是在后台运行。守护进程不考2 Browse/Server模型主要事务在服务器端实现,一部分事务在前端实现。正确3阻塞式I/O是套接字的默认模型。正确4IP数据包首部中TTL=64表示数据包在网上的最大生存时间是64秒。错误,TTL表示数据包在网上的最大生存时间,但单位不是秒,而是表示数据包可经过的最多的路由器数量,每经过一个路由器这个值-1。当这个值减为0时网络设备将抛弃这个包。5可以只用通信双方的IP地址来标识一条TCP网络连接。错误,除了需要通信双方的IP地址外还需要通信双方的端口号。三、 简答题(55分=25分)1请简述4种Linux系统中进程间的通信机制。(1)管道(pipe)和命名管道(named pipe/FIFO)(2)信号(signal)(3)消息队列(message queue)(4)共享内存(share memory)和内存映像文件(memory mapped file)(5)信号量(semaphore)(6)UNIX域socket2套接字函数close( )与shutdown( )的差别?shutdown操作连接通道,其他进程不能再使用已被关闭的通道;close操作描述符,其他进程仍然可以使用该socket描述符close关闭应用程序与socket的接口,调用close之后进程不能再读写这个socket;shutdown可以只关闭一个通道,另一个通道仍然可以操作3请简述循环服务器模型和并发服务器模型的区别。循环服务器:任一时刻只处理一个客户机请求,处理请求过程中下一请求等待,节省服务器资源,响应时间长,适合处理非耗时请求。并发服务器:并发执行,每收到一个连接请求创建一个进程处理该连接,服务器继续等待下一连接,响应速度快,占用系统资源多。4怎样将阻塞式套接字转变为非阻塞式套接字?(1)函数fcntlint flags;flag=fcntl(sockfd,F_GETFL,0);fcntl(sockfd,F_SETFL,flag|O_NONBLOCK);(2)函数ioctlint on=1;ioctl(sockfd,FIONBIO,&on);5Linux系统主要实现了哪几种输入/输出模型?请简述每种模型的特点。阻塞式I/O模型默认I/O模型编程简单,在进程被阻塞期间不占用CPU时间,不影响其他进程的工作效率。但进程可能长期处于休眠状态,在此期间进程不能执行别的任务,进程自身的效率不高。非阻塞式I/O模型变成相对复杂,当I/O操作不能完成时,进程还可以执行后续的程序代码,提高了进程自身的工作效率。但进程一直处于运行状态,可能占用大量的CPU时间来检测I/O操作是否完成,从而影响其他进程的运行效率。多路复用I/O模型只检查一个socket描述符时和阻塞式I/O模型类似,只是阻塞的位置不同,但效率低于阻塞式I/O模型,在多个socket描述符上进行I/O操作时效率高于阻塞式I/O信号驱动I/O模型等待I/O操作可以进行的过程中不用阻塞,可以执行其他操作,程序结构简单,更适用于UDP协议四、 当服务器采用并发服务器进行有连接的通信时,采用以下程序段的编程模式来处理应用,请将程序的空白处完善。(43分=12分)int sockfd,newsockfd;if (sockfd = socket()0) Err_sys (“socket error.”);if ( bind (sockfd,)0) Err_sys (“error.”);if ( listen (sockfd,5)0) Err_sys (“error.”);for( ; ; ) newsockfd = accept (sockfd,); if (newsockfd 0) Err_sys (“ error.”); if ( fork() = =0) close(sockfd); doit(newsockfd); /用newsockfd 处理具体连接请求 close(newsockfd);exit(0); close(newsockfd); 五、 阅读以下程序,详细说明该程序的功能。(10分)void sigchld_handler(int);int main()struct sigaction act;int i;act.sa_handler=sigchld_handler;act.sa_flags=0;sigemptyset(&act.sa_mask);if(sigaction(SIGCHLD,&act,NULL)0)coutsigaction error.endl;exit(1);for(i=0;i5;i+)if(fork()=0)coutchild getpid()0;)coutchildpiddied:WEXITSTATUS(stat)endl;本程序通过循环过程生成了五个子进程,子进程将打印出他们自己的进程号,然后以status=0退出。由于本程序设置了信号SIGCHLD的处理,在处理函数sigchld_handler中,父进程接收到子进程发来的SIGCHLD信号时将打印出子进程的进程号以及退出状态。六、 使用UDP套接字编程(13分)客户机发送20个整数给服务器,服务器在其中找到这些整数的最大值,返回给客户机。不考UDP七、 编写一个服务器程序,使其能够实现TCP并发服务,并且打印出每个连接成功的客户端的IP地址及其端口号(10分)#include .#define SERVPORT 3333 /* 服务器监听端口号 */#define BACKLOG 10 /* 最大同时连接请求数 */int main(void)int sin_size;int sockfd, new_fd;struct sockaddr_in server_addr;struct sockaddr_in client_addr;/建立套接字 sockfd=socket(AF_INET, SOCK_STREAM, 0);if (sockfd = -1)perror(socket creat error!);exit(1);/填充地址bzero(&server_addr, sizeof(server_addr);server_addr.sin_family = AF_INET;server_addr.sin_port = htons(SERVPORT);server_addr.sin_addr.s_addr = htonl(INADDR_ANY);/绑定if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr) = -1)perror(bind error!);exit(1);/监听if (listen(sockfd, BACKLOG) = -1)perror(listen error!);exit(1);while(1)sin_size = sizeof(struct sockaddr_in);if (new_fd = accept(sockfd, (struct sockaddr *)&client_addr, &sin_size) = -1)perror(accept error!);continue;printf(client addr:%s %dn, inet_n

温馨提示

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

评论

0/150

提交评论