当前位置:
文档之家› 湘潭大学 《网络协议分析及编程Ⅰ》试卷
湘潭大学 《网络协议分析及编程Ⅰ》试卷
TCP/IP 通信端点 sockfd 的 IP 地址字段�正确的是__(5)__。
(5)�A�sockfd.sin_addr = “192.168.0.1”;
B�sockfd.sin_addr.s_addr = “192.168.0.1”;
C�sockfd.sin_addr = inet_addr(“192.168.0.1”);
phe = gethostbyname("www.xtu.edu.cn"); printf("IP Adress: %d.%d.%d.%d\ n", phe-> h_addr); B�struct hostent * phe; phe = gethostbyname("www.xtu.edu.cn"); printf("IP Adress: %d.%d.%d.%d\ n", * phe-> h_addr); C�struct hostent * phe; const u_char * p; phe = gethostbyname("www.xtu.edu.cn"); p = (const u_char * ) phe-> h_addr; printf("IP Adress: %d.%d.%d.%d\n", p[ 3] , p[ 2] , p[ 1] , p[ 0] ); D�struct hostent * phe; const u_char * p; phe = gethostbyname("www.xtu.edu.cn"); p = (const u_char * ) phe-> h_addr; printf("IP Adress: %d.%d.%d.%d\ n", * p, * (p+ 1), * (p+ 2), * (p+ 3)); ●以下对于库函数 getservbyname 调用的语句序列中�__(17)__ 将获得 FTP 服务的端 口号并产生合适的输出。 (17)�A�struct servent * pse; pse = getservbyname(“ftp”, “udp”); printf("ftp port: %d\ n", pse-> s_port); B�struct servent * pse; pse = getservbyname(“ftp”, “udp”); printf("ftp port: %d\ n", ntohs(pse-> s_port)); C�struct servent * pse; pse = getservbyname(“ftp”, “tcp”); printf("ftp port: %d\ n", pse-> s_port); D�struct servent * pse; pse = getservbyname(“ftp”, “tcp”); printf("ftp port: %d\ n", ntohs(pse-> s_port)); ●以下情况下�并发的、面向连接服务器的单线程实现比多线程实现更好的是__(18)__。 (18)�A�每个请求的处理时间很短�均小于 CPU 分片时间 B�各个请求的处理时间很长�均大于 CPU 分片时间 C�服务器运行在具有多个处理器的计算机上
●以下语句序列中�__(7)__将创建一个 UDP 通信端点 sock。
(7)�A�int sockfd; sock = socket(PF_INET, SOCK_STREAM, 0);
B�int sockfd; sock = socket(PF_INET, SOCK_DGRAM, 0);
C�int sockfd; sock = socket(PF_INET, SOCK_RAW, 0);
……………………………………………………………装…………………… 订……………………线…………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………
湘潭大学2010 年下学期2008级《网络协议分析
分
个空格对应一个序号�有 A、B、C、D 四个选项�请选择一个最恰当的选
项作为解答�写在答卷的相应序号栏内。
●以下关于客户/服务器应用软件设计参数化的叙述中�错误的是__(1)__。
(1)�A�客户应用软件应当提供允许用户指定目的机器的参数
B�客户应用软件应当提供允许用户指定目的协议端口号的参数
C�服务器应用软件应当提供允许用户指定本地机器的参数
D�服务器应用软件应当提供允许用户指定本地协议端口号的参数
●在使用有状态交互的文件服务器环境中�有状态文件服务器的状态信息表中不必包含
的信息字段是__(2)__。
(2)�A�文件名
B�当前位置
C�上一次操作
D�上一次操作的字节数
●以下关于有状态服务器的标识客户的方法的叙述中�错误的是__(3)__。
及编程Ⅰ》课程考试试卷
�A卷� 适用年级专业 2008级网络工程专业
考试方式 闭卷
考试时间 120 分钟
学院
专业
班级
审核日期�
审核人签名��
学号
姓名
题
阅卷
一
二
三
四
五
总分
号
教师
得
分
………………………………………………………………………………………………………………………
得
一、本题中共有 30 个空格�要求全部解答�每个空格 2 分�满分 60 分。每
C�TCP 客户
Βιβλιοθήκη Baidu
D�TCP 服务器户
●以下情况下�__(10)__接收数据时必须且仅须调用 recvfrom 一次就可以获得由发送方
发送的一个完整报文。
(10)�A�TCP 客户
B�TCP 服务器
C�UDP 客户
D�UDP 服务器
●一个 TCP 客户的套接字 sockfd 发送完最后一个请求�但服务器对该请求的响应中有
环中�主进程调用 accept 接受传入的连接�并且创建一个从进程处理该连接。在以下
为该套接字选择一个临时的端口
B�应用进程调用 bind 时为套接字指定一个非 0 端口�如果此端口与熟知端口冲
突�那么�TCP/IP 协议软件就会为该套接字重新选择端口号
C�应用进程调用 bind 时为套接字指定 IP 地址为通配地址 INADDR_ANY�那么�
TCP/IP 协议软件就会为该套接字选择一个本地 IP 地址
(6)�A�sockfd.sin_port = 2010;
B�sockfd.sin_port = htonl(2010);
C�sockfd.sin_port = htons(“2010”);
D�sockfd.sin_port = htons((unsigned short)atoi(“2010”));
D�sockfd.sin_addr.s_addr = inet_addr(“192.168.0.1”);
�第 1 页 共 14 页�
制卷日期�
制卷人签名�
●以下列语句中�将端口号 2010 填入到一个已经声明为 sockaddr_in 结构的 TCP/IP 通
信端点 sockfd 的端口号字段�正确的是__(6)__。
C�无论 TCP 还是 UDP 客户调用 connect 都会检测远程端点地址的合法性
D�客户调用 connect 之前不必调用 bind 指定本地 IP 地址与本地协议端口
●以下情况下�__(9)__不能使用 read/ write 来接收/发送数据的是。
(9)�A�连接模式的 UDP 客户
B�UDP 服务器
常会在字段__(4)__中填入值�而其他字段的值必须使用其他系统调用才会填上。
(4)�A�Family, Sevice
B�Local IP, Remote IP
C�Local port, Remote port
D�Local IP, Local port
●以下程语句中�将 IP 地址“192.168.0.1” 填入到一个已经声明为 sockaddr_in 结构的
C�调用 listen 通常应该在调用 socket 之后�并在调用 bind 之前
D�listen 调用的第二个参数规定了 TCP/IP 协议软件应该为相应的套接字排队的最
大连接个数
●系统调用 accept 的函数原型如下�
int accept (int, struct sockaddr * , socklen_t * );
D�TCP 服务器调用 bind 时为套接字指定特定的 IP 地址�那么�这就限定了该套
接字只能接收那些目的为此特定 IP 地址的客户连接。
●以下关于调用 listen 的叙述中�错误的是__(13)__。
(13)�A�listen 只能由 TCP 服务器调用
B�TCP 服务器调用 listen 将套接字置于被动模式
以下关于调用 accept 的叙述中�错误的是__(14)__。
(14)�A�accept 只能由 TCP 服务器调用
�第 2 页 共 14 页�
B�调用 accept 时�accept 的第二个参数通常是空指针 C�如果调用 accept 时没有任何连接请求到达�那么 accept 调用失败 D�如果 accept 调用成功�那么对端进程的协议地址由第二个参数的指针指定 ●系统调用 recvfrom 的函数原型如下� ssize_t recvfrom(int, void * , size_t, int, struct sockaddr * , socklen_t * ); 以下关于调用 recvfrom 的叙述中�错误的是__(15)__。 (15)�A�调用 recvfrom 时�recvfrom 的第四个参数 flag 通常置为 0 B�调用 recvfrom 时�的第五个参数通常是空指针 C�如果调用 recvfrom 时没有任何数据到达�那么 accept 调用的返回值为 0 D�如果 recvfrom 调用成功�那么对端进程的协议地址由第五个参数的指针指定 ● 以 下 对 于 库 函 数 gethostbyname 调 用 的 语 句 序 列 中 � __(16)__ 将 获 得 主 机 “www.xtu.edu.cn”的 IP 地址并采用点分十进制表示的形式输出。 (16)�A�struct hostent * phe;
大量的数据需要传递�此时�客户应当使用__(11)__关闭套接字。
(11)�A�close(sockfd)
B�shutdown(sockfd, 0)
C�shutdown(sockfd, 1)
D�shutdown(sockfd, 2)
●以下关于调用 bind 的叙述中�错误的是__(12)__。
(12)�A�应用进程调用 bind 时为套接字指定端口号为 0�那么�TCP/IP 协议软件就会
(3)�A�端点方法通常使用用客户的 IP 地址和协议端口等端点信息标识状态表条目
B�句柄方法通常使用一个小整数标识状态表条目
C�端点方法的缺点是由网络故障引发的客户连接变化会导致状态信息无效
D�句柄方法的缺点是由网络故障引发的客户连接变化会导致句柄无效
●针对套接字�socket�的系统数据结构含有许多字段�当应用进程调用 socket 后�通
D�int sockfd; sock = socket(PF_INET, SOCK_UDP, 0);
●以下关于客户调用 connect 系统调用的叙述中�错误的是__(8)__。
(8)�A�TCP 客户调用 connect 将激发 TCP 三次握手方式过程
B�UDP 客户调用 connect 只在套接字的数据结构中记录远程端点地址
�第 3 页 共 14 页�
D�各个请求的处理时间变化很大 ●以下关于并发的、无连接服务器的叙述中�错误的是__(19)__。 (19)�A�从进程与主进程使用同一个套接字通信
B�并发等级取决于传入请求数 C�并发等级取决于服务的客户数 D�每个传入请求由单独的进程处理 ●以下情况下�并发的服务器的多进程实现比多线程实现更好的是__(20)__。 (20)�A�并发执行的服务之间需要访问共享的数据 B�用户需要通过交互方式监控执行服务的状态 C�并发执行的服务之间需要相互通信 D�主服务器需要与执行服务的代码分离 ●用多进程实现的并发的、面向连接服务器的进程结构中�主进程无限循环。在每次循