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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
struct sigaction act; int i; act.sa_handler=sigchld_handler; act.sa_flags=0; sigemptyset(&act.sa_mask); if(sigaction(SIGCHLD,&act,NULL)<0){
5
cout<<"sigaction error."<<endl; exit(1); } for(i=0;i<5;i++){ if(fork()==0){

doit(newsockfd); //用 newsockfd 处理具体连接请求
close(newsockfd);
exit(0);
}
close(newsockfd);
}
……
五、阅读以下程序,详细说明该程序的功能。(10 分)
…… void sigchld_handler(int); int main() {
3.阻塞式 I/O 是套接字的默认模型。
4.IP 数据包首部中 TTL=64 表示数据包在网上的最大生存时间是 64 秒。
5.可以只用通信双方的 IP 地址来标识一条 TCP 网络连接。
3
三、简答题(5×5 分=25 分) 1.请简述 4 种 Linux 系统中进程间的通信机制。 2.套接字函数 close( )与 shutdown( )的差别? 3.请简述循环服务器模型和并发服务器模型的区别。 4.怎样将阻塞式套接字转变为非阻塞式套接字? 5.Linux 系统主要实现了哪几种输入/输出模型?请简述每种模型的特点。
6
六、使用 UDP 套接字编程(13 分) 客户机发送 20 个整数给服务器,服务器在其中找到这些整数的最大值,
返回给客户机。
7
8
七、编写一个服务器程序,使其能够实现 TCP 并发服务,并且打印出每个 连接成功的客户端的 IP 地址及其端口号(10 分)
9
10
8.在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明 A.对于只有一个 IP 地址的主机,使用“127.0.0.1”地址 B.对于有多个网卡的主机,使用其中任意一个 IP 地址 C.对于有多个网卡的主机,表示所有 IP 地址,并处理所有地址的请求 D.以上均不对
2
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 模型主要事务在服务器端实现,一部分事务在前端实现。
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 标志将置位
2.以下函数中,不会产生阻塞的是 A. send( ) B. sendto( ) C. connect( ) D. listen( )
3.进程 A 是进程 B 的父进程,当 A 正在运行时 B 退出,下列叙述中正确 的是 A.进程 A 也将退出 B.进程 A 将收到 SIGCHLD 信号 D. 进程 A 将收到 SIGKILL 信号 D.进程 A 会成为僵尸进程
cout<<"child "<<getpid()<<endl; exit(0); } } for(;;){} return 0; } void sigchld_handler(int sig) { pid_t pid; int stat; for(;(pid=waitpid(-1,&stat,WNOHANG))>0;) { cout<<"child"<<pid<<"died:"<<WEXITSTATUS(stat)<<endl; } }
Err_sys (“error.”);
if (
(sockfd,5)<0)
Err_sys (“error.”);
for( ; ; )
{
newsockfd =
(sockfd,…);
if (newsockfd < 0)
Err_sys (“ error.”);
if (
= =0)
{
close(sockfd);
4
四、 当服务器采用并发服务器进行有连接的通信时,采用以下程序段的编程
模式来处理应用,请将程序的空白处完善。(4×3 分=12 分)
int sockfd,newsockfd;
if ((sockfd = socket(…)<0)
Err_sys (“socket error.”);
if (
(sockfd,…)<0)
1
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 关联一个信号处理函数 Bwk.baidu.com设置套接字为非阻塞模式 C.设置套接字所有者 D.允许套接字进行信号驱动 I/O
西安电子科技大学《网络程序设计》试题 (2013 年 A 卷)
考试时间 120 分钟
试卷编号
班级
学号
题号 一 二 得分
姓名 三四
一、单选题(10×2 分=20 分) 1.以下字段中,不属于 IP 首部的是 A. 协议类型 B. 生存时间 C. 源 IP 地址 D. 目的端口号
任课老师姓名 五 六七
总分
相关文档
最新文档