网络程序设计试题A卷-2013(李金库)
更新时间:2024-06-19 16:30:01 阅读量: 综合文库 文档下载
- 网络程序设计asp推荐度:
- 相关推荐
西安电子科技大学《网络程序设计》试题
(2013年A卷)
考试时间 120 分钟 试卷编号
班级 学号 姓名 任课老师姓名 题号 得分 一 二 三 四 五 六 七 总 分
一、 单选题(10×2分=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会成为僵尸进程
1
4.整数0x12345678在little-endian字节序主机内存中的存储形式是_________(注:内存由低到高) A. 12 34 56 78 C. 34 12 78 56
5.使用信号驱动I/O时哪一个不是必须要执行的操作 A.为信号SIGIO关联一个信号处理函数 B.设置套接字为非阻塞模式 C.设置套接字所有者
D.允许套接字进行信号驱动I/O
6.对使用UDP协议的套接字调用connect函数,下面叙述中正确的是 A.connect函数将阻塞
B.connect函数将导致3次握手操作
C.connect函数记录对方的IP地址和端口后立刻返回 D.不能对使用UDP协议的套接字描述符调用connect函数
7.对函数调用send(sockfd,“12xyz”,5,MSG_OOB)的描述中正确的是 A.只有字符z被写入发送缓冲区 B.只有字符串12xy被写入发送缓冲区
C.字符串12xyz中的每个字符都将作为带外数据发送 D.TCP协议发送的下一个报文段中URG标志将置位
8.在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明 A.对于只有一个IP地址的主机,使用“127.0.0.1”地址 B.对于有多个网卡的主机,使用其中任意一个IP地址
C.对于有多个网卡的主机,表示所有IP地址,并处理所有地址的请求 D.以上均不对
B. 78 56 34 12 D. 56 78 12 34
2
9.请求建立连接时TCP包头中的_________标志位有效 A. SYN B. RST C. PSH D. URG
10.当通信的对方关闭其写通道时,TCP套接字的读函数read( )将_ __ A.返回大于0的整数 C.阻塞
B.返回小于0的整数 D.返回0
二、 判断下面命题的正确性,对不正确的命题,说明错误原因(5×2=10分)
1. 一般情况下,守护进程是在后台运行。
守护进程不考
2. Browse/Server模型主要事务在服务器端实现,一部分事务在前端实现。 正确
3.阻塞式I/O是套接字的默认模型。 正确
4.IP数据包首部中TTL=64表示数据包在网上的最大生存时间是64秒。
错误,TTL表示数据包在网上的最大生存时间,但单位不是秒,而是表示数据包可经过的最多的路由器数量,每经过一个路由器这个值-1。当这个值减为0时网络设备将抛弃这个包。
5.可以只用通信双方的IP地址来标识一条TCP网络连接。
错误,除了需要通信双方的IP地址外还需要通信双方的端口号。
3
三、 简答题(5×5分=25分)
1.请简述4种Linux系统中进程间的通信机制。 (1)管道(pipe)和命名管道(named pipe/FIFO) (2)信号(signal)
(3)消息队列(message queue)
(4)共享内存(share memory)和内存映像文件(memory mapped file) (5)信号量(semaphore) (6)UNIX域socket
2.套接字函数close( )与shutdown( )的差别?
shutdown操作连接通道,其他进程不能再使用已被关闭的通道;close操作描述符,其他进程仍然可以使用该socket描述符
close关闭应用程序与socket的接口,调用close之后进程不能再读写这个socket;shutdown可以只关闭一个通道,另一个通道仍然可以操作 3.请简述循环服务器模型和并发服务器模型的区别。 循环服务器:任一时刻只处理一个客户机请求,处理请求过程中下一请求等待,节省服务器资源,响应时间长,适合处理非耗时请求。
并发服务器:并发执行,每收到一个连接请求创建一个进程处理该连接,服务器继续等待下一连接,响应速度快,占用系统资源多。 4.怎样将阻塞式套接字转变为非阻塞式套接字? (1)函数fcntl int flags;
flag=fcntl(sockfd,F_GETFL,0);
fcntl(sockfd,F_SETFL,flag|O_NONBLOCK); (2)函数ioctl int on=1;
ioctl(sockfd,FIONBIO,&on);
5.Linux系统主要实现了哪几种输入/输出模型?请简述每种模型的特点。 阻塞式I/O模型-默认I/O模型
编程简单,在进程被阻塞期间不占用CPU时间,不影响其他进程的工作效率。但进程可能长期处于休眠状态,在此期间进程不能执行别的任务,进程自身的效率不高。 非阻塞式I/O模型
变成相对复杂,当I/O操作不能完成时,进程还可以执行后续的程序代码,提高了进程自身的工作效率。但进程一直处于运行状态,可能占用大量的CPU时间来检测I/O操作是否完成,从而影响其他进程的运行效率。 多路复用I/O模型
只检查一个socket描述符时和阻塞式I/O模型类似,只是阻塞的位置不同,
4
但效率低于阻塞式I/O模型,在多个socket描述符上进行I/O操作时效率高于阻塞式I/O
信号驱动I/O模型
等待I/O操作可以进行的过程中不用阻塞,可以执行其他操作,程序结构简单,更适用于UDP协议 四、 当服务器采用并发服务器进行有连接的通信时,采用以下程序段的编程
模式来处理应用,请将程序的空白处完善。(4×3分=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;
5
int i;
act.sa_handler=sigchld_handler; act.sa_flags=0;
sigemptyset(&act.sa_mask);
if(sigaction(SIGCHLD,&act,NULL)<0){
cout<<\ exit(1); }
for(i=0;i<5;i++){
if(fork()==0){ cout<<\ exit(0); } }
for(;;){}
return 0;
}
void sigchld_handler(int sig) { pid_t pid; int stat; for(;(pid=waitpid(-1,&stat,WNOHANG))>0;) {
cout<<\
} }
本程序通过循环过程生成了五个子进程,子进程将打印出他们自己的进程号,然后以status=0退出。由于本程序设置了信号SIGCHLD的处理,在处理函数sigchld_handler中,父进程接收到子进程发来的SIGCHLD信号时将打印出子进程的进程号以及退出状态。
6
六、 使用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(\ 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(\!\exit(1);
7
}
//监听
if (listen(sockfd, BACKLOG) == -1)
{
perror(\!\ exit(1); }
while(1) {
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct *)&client_addr, &sin_size)) == -1) {
perror(\ continue; }
printf(\addr:%s inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
if (!fork()) {/* 子进程代码段 */
/* do something */ /* ............ */ /* do something */
close(new_fd); exit(0); }
close(new_fd); }
return 0;
}
8
sockaddr %d\\n\
正在阅读:
网络程序设计试题A卷-2013(李金库)06-19
妈妈我想说作文350字06-19
Patch的应用和制作方法10-09
中国现当代作家作品专题研究04-26
中国现当代文学模拟试题107-17
最新万事达导购促销服务员社会实践报告05-17
暑期服务员社会实践报告04-29
制冷课后习题06-02
?业务员社会实践报告04-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 金库
- 程序设计
- 试题
- 网络
- 2013
- 在“两会”结束时的讲话
- 新人教版《小学数学 四年级下册》教案(75页)
- 算法设计与分析(期末总复习)
- 基本磁盘升级到动态磁盘
- 东航2008年度放行人员B737-300试题C
- 最新-初中语文教师述职报告 精品
- 乡镇工作面临的机遇和挑战及其原因对策分析
- 2019届中考地理第十五章认识区域第4节青藏地区 - 图文
- 新浙教版七年级数学下册《二元一次方程组的应用(2)》导学案
- 小学生艺术展演活动方案
- 2017年食品加工厂项目可行性研究报告
- BLDC控制 - 图文
- 自动控制原理—试卷B(胡俊峰)
- 经典医疗整形美容广告文案
- 磁悬浮列车文献综述
- 汽车销售系统实训报告
- 病人的清洁卫生习题
- 实验五 醋酸标准离解常数和电离度的测定
- 儿科护理学试题
- 四年级下册《生命。生态。安全》教学计划