网络程序设计试题A卷-2013

网络程序设计试题A卷-2013

2023年8月2日发(作者:)

西安电子科技大学《网络程序设计》试题(2013年)

一、单选题(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会成为僵尸进程

4.整数0x12345678在little-endian字节序主机内存中的存储形式是_________(注:内存由低到高)

A. 12 34 56 78 B. 78 56 34 12 C. 34 12 78 56 D. 56 78 12 34

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.以上均不对

9.请求建立连接时TCP包头中的_________标志位有效

A. SYN B. RST C. PSH D. URG

10.当通信的对方关闭其写通道时,TCP套接字的读函数read( )将_ __

A.返回大于0的整数 B.返回小于0的整数 C.阻塞 D.返回0

二、判断下面命题的正确性,对不正确的命题,说明错误原因(5×2=10分)

1. 一般情况下,守护进程是在后台运行。

2. Browse/Server模型主要事务在服务器端实现,一部分事务在前端实现。

3.阻塞式I/O是套接字的默认模型。

4.IP数据包首部中TTL=64表示数据包在网上的最大生存时间是64秒。

5.可以只用通信双方的IP地址来标识一条TCP网络连接。

三、简答题(5×5分=25分)

1.请简述4种Linux系统中进程间的通信机制。

2.套接字函数close( )与shutdown( )的差别?

3.请简述循环服务器模型和并发服务器模型的区别。

4.怎样将阻塞式套接字转变为非阻塞式套接字?

5.Linux系统主要实现了哪几种输入/输出模型?请简述每种模型的特点。

四、当服务器采用并发服务器进行有连接的通信时,采用以下程序段的编程模式来处理应用,请将程序的空白处完善。(4×3分=12分)

int sockfd,newsockfd;

if ((sockfd = socket(…)<0)

Err_sys (“socket error.”);

if ( (sockfd,…)<0)

Err_sys (“error.”);

1 if ( (sockfd,5)<0)

Err_sys (“error.”);

for( ; ; )

{

newsockfd = (sockfd,…);

if (newsockfd < 0)

Err_sys (“ error.”);

if ( = =0)

{

close(sockfd);

doit(newsockfd); //用newsockfd 处理具体连接请求

close(newsockfd);

exit(0);

}

close(newsockfd);

}

……

五、阅读以下程序,详细说明该程序的功能。(10分)

……

void sigchld_handler(int);

int main()

{

struct sigaction act;

int i;

_handler=sigchld_handler;

_flags=0;

sigemptyset(&_mask);

if(sigaction(SIGCHLD,&act,NULL)<0){

cout<<"sigaction error."<

exit(1);

}

for(i=0;i<5;i++){

if(fork()==0){

cout<<"child "<

exit(0);

}

}

for(;;){}

return 0;

}

void sigchld_handler(int sig)

{

pid_t pid;

int stat;

for(;(pid=waitpid(-1,&stat,WNOHANG))>0;) {

cout<<"child"<

}

}

2 六、使用UDP套接字编程(13分)

客户机发送20个整数给服务器,服务器在其中找到这些整数的最大值,返回给客户机。

七、编写一个服务器程序,使其能够实现TCP并发服务,并且打印出每个连接成功的客户端的IP地址及其端口号(10分)

西安电子科技大学《网络程序设计》试题(2010年)

一、单项选择题(20分)

1. 在Internet网络模型中,IGMP协议位于_________层。

①传输 ②网络 ③链路 ④物理

2. ICMP数据包一定是被封装在____________数据包中传输的。

①TCP ②IGMP ③IP ④UDP

3. 套接字函数中_________不会产生阻塞。

①connect ②read ③accept ④bind

4. 网络编程时,不需要考虑字节顺序的数据类型是____。

①short int ②char ③float ④int

5. 使用阻塞式TCP套接字时,函数write执行完毕,表示____。

①数据已写入发送缓存区 ②数据已发送至路由器 ③数据已发送至接收进程 ④数据已发送至服务器

6. 调用fork( )函数产生子进程后,进程的执行顺序是____。

①先运行父进程,后运行子进程 ②先运行子进程,后运行父进程

③不确定 ④先运行进程号较小的进程

7. shutdown函数的第二个参数取值为0,表示要关闭______通道。

①读 ②带外数据 ③写 ④读和写

8. 采用多路复用I/O 监听4个套接字的数据时,如果套接字描述符分别是:15、16、17、19,则select(int maxfd, struct

fd_set* rdset, NULL,NULL) 中的maxfd应取为___。

① 14 ②15 ③ 20 ④19

9. 超级服务进程的配置文件 / e t c / i n e t d . c o n f 中,wait 字段设置为nowait,通常表示此项服务____。

①是并发服务 ②采用UDP协议工作 ③采用TCP协议工作 ④是循环服务

10. HTML文件想要显示“<”,相应代码应为___。

① < ②&< ③ lt ④<

二、简答题(30分)

1. 采用阻塞式I/O模型时,套接字函数read()的返回值有哪几种?分别对应什么情况?

2. 为什么客户机通常不需要绑定自己的端口号?

3. close()函数和shutdown()函数有何差别?

4. 僵尸进程有什么危害?清除僵尸进程的方法主要有哪些?(至少写出4种)

5. Linux系统默认的I/O模型是什么?请给出两种将阻塞式模型转换为非阻塞式模型的方法?

三、请给出实现一个守护进程的程序代码。(10分)

四、编程产生2个子进程:子进程1和子进程2。然后利用管道,将字串“abcde”从子进程1传送到子进程2。(15分)

五、使用UDP套接字完成如下服务器和客户机的编程工作(15分)

客户机发送一个整数,UDP循环服务器将这个整数加上100,结果返回给客户机。

六、采用预创建10个子进程的方式,编程实现一个TCP并发服务器。(10分)

3

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690959357a473198.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信