2015年TCP/IP网络编程复习题
一、选择题
1、要对IP协议直接访问,必须使用(  )套接字
    ① 数据流  ②数据报  ③ 原始    ④没有办法
2、下列套接字函数可产生套接字的是(  )
①send  ②accept   ③connect  ④close
3、使用数据报套接字进行网络通信的应用层协议是(  )
①FTP  ②POP3  ③PPP  ④SNMP
4、要建立数据报套接字,在socket函数中需要使用的参数是(  )。
    ① SOCK_DGRAM  ②SOCK_STREAM  ③ SOCK_RAM    ④SOCK_PACKET
5、下面的属于IPv4地址结构的是(    )。
① sockaddr_in  ②sockaddr  ③ addr    ④in_addr
6、初始化信号量应该使用的函数名是(    )。
① pthread_cond_init  ②pthread_create  ③ sem_init    ④pthread_mutex_init
7、下列哪个协议是应用层的(  )
①IGMP  ②HTTP  ③ARP  ④ICMP
8、下列哪个协议是应用层的(  )
①CSMA  ②SMTP  ③TCP  ④ICMP
9、在Linux下,下列哪个函数用来关闭一个套接字(  )
①closesocket,  ②WSACleanup  ③close  ④exit
10、在数据流式套接字中(  )套接字函数将产生网络报文
    ① socket    ②bind    ③ sendto ④connect
11、 下列套接字函数中,不能用于数据流通信的是(    )
①socket  ②bind    ③ send    ④recvfrom
12、 下列套接字函数中,需要地址结构作为参数的是(    )
①socket  ②recvfrom    ③ send    ④close
13、 listen函数的作用是(  )
①接受连接请求 ②设置等待连接状态  ③连接套接字到目的地 ④指定本地地址
14、 winsock中提供的用于消息机制的函数是(    )
①WSAStartup  ② WSAEventSelect  ③WSACleanup  ④WSAAsynSelect
15、将长整形数值从网络顺序转换为本机顺序的函数(    )
    ①ntohl          ② htons          ③ htonl        ④  ntohs
16、下列哪个函数在linux系统下网络程序不能使用(    )
    ①closesocket    ② select  ③close  ④ printf
17、 套接字函数在完成其任务之前不返回,我们称之为(      )
①消息机制  ②事件机制 ③阻塞方式  ④非阻塞方式
18、属于网络层的协议(  )
① CSMA/CD        ② ICMP      ③ FTP    ④  UDP
19、属于链路层的协议(  )
① CDMA        ② ICMP      ③ PPP  ④  UDP
20、下列应用中使用TCP传输的是(  )
①实时视频  IP电话 网页传输  ④ DNS 
21、下列应用中使用UDP传输的是(  )
①文件传输  IP电话  网页传输  ④
22、 IP协议具有如下哪个特点(    )
①保证传输可靠性  ②无连接的数据报 ③建立虚电路  ④进行拥塞控制
23、 下列哪个特点是TCP协议没有的(    )
①保证传输可靠性  ②流量控制 ③建立虚电路  ④进行拥塞控制
24  在网络通信中,客户机要访问服务器程序,必须知道服务器的(  )
①地理位置  ②程序名称  ③所在国家  ④ 端口和主机地址
25、下列哪个套接字函数不能用于客户程序(  )
①socket  ②send  ③accept  ④ connect
26、下列哪个套接字函数不能用于服务器程序(  )
①socket  ②sendto  ③accept  ④ connect
27、下列哪个套接字函数不能用于服务器程序(  )
①listen  ②send  ③accept  ④ connect
28、网络应用程序运行在网络系统的(  )上
①端系统   ②核心系统  ③路由器  ④ 网线
29、下列设施属于网络核心系统的是(  )
①路由器   ②智能手机  ③Web服务器  ④ PC
30、根据规定,网络字节序是(  )
Big endian   ② Little endian   ③和Intel x86一致  ④说不清
31、浏览器是一种(  )
①HTTP客户端  ②HTTP服务器  ③文件服务器  ④邮件客户端
32、已知IP地址的点分十进制形式,下列哪个函数能够得到其整数形式(  )
①gethostbyname  ②inet_ntoa  ③inet_addr ④gethostbyaddr
二、判断题
1.服务器必须先于客户端启动。    ( √ )                           
2.并发服务器比循环服务器性能好。( × )                       
3.在并发服务器中,线程越多越好    ( × )                     
4.有些场合下只能使用UDP进行网络通信。( √ )                       
5.多个线程可以共享全局变量。            ( √ )                       
6.多进程并发时,可通过共享变量来交换信息。    ( √ )             
7.互斥锁是一种多进程同步机制        ( √ )                     
8.套接字是操作系统提供的一组用于网络通信的API。    ( √ )           
9.发送一个UDP报文,接受方可能收到两个UDP报文。    ( × )         
10.发送两个TCP数据,接收方可能一次收到全部数据。      ( √ )     
11.UDP客户使用connect函数时,没有向网络发送任何数据报文。        ( √ )   
12.TCP协议只能用于点到点通信。                ( √ )                       
13.一个数据报套接字可以和多个其他套接字同时通信          ( √ )             
14.使用数据流网络通信可以减少网络流量。                ( × )     
15.在winsock中,应该使用open函数打开一个套接字            ( × )     
16.数据流式套接字是基于TCP协议的                    ( √ )             
17.UDP的端口号数量比TCP的端口号数量少。            ( × )             
18.总是用close函数关闭一个套接字            ( × )                 
19.数据流套接字通信时,用目的IP地址和目的端口号可以唯一确定一个套接口 ( √ )
20.TCP协议在传输数据之前,必须先建立连接。            ( √ )         
21.客户机程序必须绑定一个周知端口才能进行网络通信。          ( × )       
22.UDP协议可以用于多点对多点的网络通信                    ( √ )
23.TCP服务器用listen函数获得一个客户的网络连接。            ( × )   
24.要实现ping程序功能可以使用数据报套接字                    ( √ )     
25.tftp协议是使用udp协议来实现的。                            ( √ )     
26.在tcpip参考模型中tcp协议工作在可以使用数据报套接字来传输文件                            ( √ )   
27.多进程并发比多线程并发性能更好                      ( × )   
28.多线程并发比单线程并发性能更好。                    ( × )               
29.要实现ping程序功能应该使用原始套接字。              ( √ )               
30.可以用TCP协议进行组播通信。                        ( × )                 
31.对于循环的面向连接的服务器同一时刻只有一个套接字。    ( × )             
32.根据主机域名得到IP地址的函数是gethostbyname。          ( √ )                 
33.一个数据报套接字可以和多个其他套接字同时通信。        ( √ )                   
34.多进程并发时,可通过共享变量来交换信息。              ( √ )                   
35.互斥锁和信号量都是多线程同步机制。            ( √ )                       
36.TCP服务器用bind函数获得一个客户的网络连接。        ( × )                   
三、简答题
1、端口有什么作用?为什么需要周知端口?
端口就是程序与程序之间的通讯的接口。周知端口是众所周知的端口号,其中80端口分配给WWW服务,有了周知端口就可以确定并使用该端口的服务类型。
2、在网络通信时为什么要采用客户服务器模式?
因为数据需要隔离。在C/S模式之前,是文件共享形式的网络服务,文件直接暴露在客户机面前,客户机可以随意篡改。而采用CS模式,客户机的使用者是无法直接获取数据文件的,必须要通过客户端软件操作。
3、如何确定一个套接字是被动的(用于服务器的)?
看它是等待传入链接的套接字还是发起连接的套接字,等待传入链接的套接字是被动的(即用于服务器的)。
4、试比较无连接和面向连接的网络通信特点。
面向连接服务的特点: 
①面向连接服务的数据传输必须经过连接建立,连接维护,释放连接3个阶段。
②面向连接服务在数据传输过程中,各个分组不需要携带目的节点的地址。
③面向连接服务传输可靠性高,但是协议复杂,通信效率低。
非连接的服务的特点:
①非连接服务中,每个分组都需要携带完整的目的节点地址,各个分组在系统中独立传送。
②非连接服务中的数据在传输过程不需要经过连接建立,连接维护,释放连接3个阶段。
③ 由于非连接服务发送的分组可能经历不同的路径发送到目的节点,因此可能出现乱序, 重复,丢失的现象。 
④ 非连接服务的可靠性不好,但是省去很多保证机制,协议相对简单,通信效率比较高。
5、有哪几种网络应用程序体系结构,各有什么特点?
B/S体系结构、C/S体系结构、P2P体系结构

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。