《网络编程技术》试题 2_第1页
《网络编程技术》试题 2_第2页
《网络编程技术》试题 2_第3页
《网络编程技术》试题 2_第4页
《网络编程技术》试题 2_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成都信息工程学院考试试卷

学年第学期

课程名称:网络编程技术使用班级:网络工程学院级

试卷形式:开卷口闭卷回

试总

—•二三四五六七八九十

题分

填空题(每空2分,共22分)

1.在基于TCP的通信中,主动关闭连接的一方会在TIME_WAIT状态下等待

长度的时间。因此,主动关闭一方的程序无法马上重新启动并再次绑定相同的IP地址与

0K端口。这时可以使用函数并在参数中指字套接字选项。

2.名字到IP地址的解析使用的函数是,IP地址到域名的解析

-E邹

使用的函数是。

3.为保证“大端”和“小端”字节序的机器之间能相互通信,需在发送多字节整数时,

S——将主机字节序转换成。

4.socket。函数可以创建三类套接字,分别是TCP套接字,和。

5.bind。、connect。等函数在出错的时候均会返回-1,具体出错的原因的错误代码可以在

全局变量___________中找到,调用可以将错误代码转换为它对应的字符串

信息。

6.在TCP连接中,若需要关闭某个方向的连接,可以使用函数。

7.gethostname(char*name,size」namelen)函数的功能是。

8.pselect(intrnaxM,fd_set*readset,fd_set*writeset,fd_set*exceptset,conststruct

timeval*timeout,constsigset_t*sigmask)函数的maxfd参数的值

是,timeout参数定义的超时时间精确到,sigmask

第1页

参数的作用是。pselect函数返回值有三种情况,返回值为0

表示,返回值大于0表示,而返回值为-1时表示出错。

9.设置SO_KEEPALIVE选项作用是。

10.pthread_key_create(pthread_key_t*key,void(*destructor)(void*value))函数的作用

是,其中destructor是,value

是,value的默认值是。

11.基于TCP协议的服务器端程序中,需要两个描述符,它们分别是由函数

创建的负责的描述符,和由函数创建的负责的

描述符。

12.基于TCP协议的套接字服务器程序中,会产生两个描述,其中之一是由

函数创建的描述符,其主要功能是:其中之二是由

函数创建的描述符,其主要功能是:

13.函数bind返回的一个常见错误是:所绑定的地址已被其它进程使用,为解决这个问

题,我们可以通过调用_____________________函数,并为该函数的Optnaine(需设置

的选项)形参传递参数避免产生这个错误。

14.基TCP套接字程序中,服务器可以通过________函数返回与之通信的当前客户端

的套接字地址结构。

15.pthread_detach(pthread_ttid)的作用是将一个线程变成线程。

16.基于TCP协议的套接字服务器程序中,会产生两个描述,其中之一是由

函数创建的描述符,其主要功能是:其中之二

是由_____________________函数创建的描述符,其主要功能是:

17.在Liunx操作系统中支持五种I/O模型,分别是、

、、阻塞I/O模型和非阻塞I/O模型。

18.函数在进程内部分配一个标志TSD的关键字,并且该函数

其中一个形参是可选的析构函数,当系统调用该析构函数时,传递的参数是

第2页

19.以INADDR_ANY调用bind的服务器,在接收到连接后,调用函

数获取系统选择的IP地址。

20.如果用户程序为发送网络数据报构造自己的IPv4头部,需创建套

接字,并且前提条件是:调用_______________函数,给套接字设置________________选

二、判断题(正确错误X)(每题1分,共14分)

题号1234567891011121314

-

-答案

-

-1.在用pthread库编写的多线程程序中,若主线程退出,则主线程创建的新线程将继续

噩运行。()

K2.在TCP网络程序中,connect。函数用于客户端向服务器发起连接。而在UDP网络程

序中,由于UDP是面向无连接的,所以connect。函数不能用于UDP客户端。()

郛3.inet_ntoa()函数可以将32位的网络字节序二进制IPv4地址转换成相应的字符串形式

赭的IP地址,但不能将二进制IPv6地址转换成相应的字符串形式的IP地址。()

W

4.服务器程序通常都会调用bind。函数以绑定监听地址,而客户端则很少调用它式)

——

5.当一个客户SYN到达时,若未完成连接队列和已完成连接队列都是满的,TCP就忽

略此分节,且不发送RST。()

6.调用close。函数将立即关闭发送与接收这两个方向的TCP连接而不管将关闭的套接

字的引用情况。()

7.在TCP客户服务器通信中,若服务器端崩溃,则可以通过重启服务器让正在进行的

通信继续。()

8.TCP迭代服务器在某一时刻最多只能存在一个客户端与之建立的通信连接,而并发

服务器在某一时刻可以存在多个客户端与之建立的通信连接。()

9.互斥锁是一种专用于进程间数据同步的技术。()

10.当子进程正常或异常终止时,系统内核会向其父进程发送SIGCHLD信号。()

——第3页一一

11.可以使用原始套接口编程伪造IP数据包实现DoS攻击。()

12.在多进程编程中,父进程用于监听,子进程用于为已经连接客户端提供服务,则父

进程必须关闭已连接套接字,子进程必须关闭监听套接字。()

13.调用bind。函数时,必须指明IP地址与端口号,而不能让内核来选择IP地址与端口

号。()

14.调用select函数可以实现与sleep函数一样的延时间功能。()

15.connect()函数的作用是发起建立连接的请求。()

16.基于TCP协议的服务器端程序,可以通过accept。函数获得与之通信的客户端的

IP地址和端口号。()

17.基于UDP协议的服务器端和客户端程序,在接收和发生数据时,必须使用sendto。

和recvform()函数。()

18.fork。函数和vfork()函数都可以创建子进程,所以基于这两个函数都可以实现多进程

并发服务器。()

19.线程可以条用exit。函数退出,而且对同一进程的其他线程不会造成影响)

20.pthread」oin()函数可以等待任意线程的退出。()

21.标识线程专用数据的关键字key是进程惟一的。()

22.使用I/O复用技术可以实现并发服务器。()

23.对SO_KEEPALIVE选项中时间参数的修改,会影响到主机中打开该选项的所有套接

字。()

24.gelhostbyname(constchar*hostname)函数不允许将IP地址作为函数的参数。()

25.SO_LINGER选项可以改变TCP套接字关闭连接时的缺省行为。()

26.只要创建了原始套接字就可以自行构造IP报文的首部。()

27.可以对未加互斥锁的数据进行解锁。()

28.使用互斥锁可以保证,在同一时间内,只允许一个线程访问共享数据。()

29.select。函数可以实现计时器的功能。()

30.由确定通信的五元组(本地协议,本地IP,本地端口,远程协议,远程IP,远程端

第4页

口)可知,该(本地TCP,本地IP,本地端口,远程UDP,远程IP,远程端口)六

元组所标识网络中一个连接可以进行正常的网络通信。

31.套接口是计算机操作系统为TCP/UDP协议与IP协议之间进行数据交互提供的接

口,又称为套接字。

32.在IPv4套接字地址结构中,成员sin_port是用来存储主机字节顺序端口号。

33.默认情况下,close函数将套接字的访问计数减法1,并丢弃发送缓冲区和接收缓冲

区的数据,仅在次计数为0时才关闭套接字。

34.UDP套接字编程,调用recvfrom函数可以获得通信的对方的套接字地址结构。

-

-35.wait()函数可以处理同时退出的多个线程进行。

-

-36.一个线程的崩溃不会影响同一进程中的其它线程。

-

噩37.在多线程并发服务器中,主线程生成子线程后,在主线程中要关闭已连接描述符,

施在子线程中要关闭监听描述符,

K

38.标识线程专用数据的关键字key是进程惟一的。

-£39.stdin设为非阻塞后,不能使用标准输入输出函数操作该句柄,而要通过read来操作。

赭40.非阻塞I/O的实现可以通过fcntl()来改变描述符的标志来实现。

W41.I/O复用模型调用select或poll,进程阻塞于这两个系统调用上,而不是阻塞于真正

——

的I/O系统调用上。

42.在TCP服务器,为了接收更多的数据,可以在接收数据调用read函数时,临时更改

套接字接收缓冲区的大小。

43.改变某个描述符的SCLKEEPALIVE选项值,不会影响到主机上打开的其它描述符。

44.只要创建了原始套接字就可以自行构造IP报文的首部。

45.由确定通信的五元组(本地协议,本地IP,本地端口,远程协议,远程IP,远程端

口)可知,该(本地TCP,本地IP,本地端口,远程UDP,远程IP,远程端口)六

元组所标识网络中一个连接可以进行正常的网络通信。

46.套接字是计算机操作系统为TCP/UDP协议与IP协议之间进行数据交互提供的接

口,又称为套接字。

——第5页一一

47.在TCP的客户端程序中,如果connect()函数调用失败,则还可以继续使用该套接

字。

48.在IPv4套结字地址结构中,in_addr结构体中的s_addr成员,存储的便是我们主机

字节序的32位IPv4地址。

49.vfork()函数创建的子进程后,父进程和子进程谁先执行,这取决于内核所使用的调度

算法,有可能父进程先于子进程执行,也有可能子进程先于父进程执行。

50.在UDP套接字程序中,客户端与服务器通信时,必须使用sendto()和recvfrom()

函数。

51.waitpid()函数可以处理同时退出的多个进程进行。

52.对于非阻塞I/O模型,进程从调用recvfrom函数,到将数据从内核拷贝到用户空间

整个过程都不会阻塞进程的执行。

53.在多线程并发服务器中,为了防止父子线程对描述符的操作造成混乱,在主线程创

建子线程后,应在父线程中关闭已连接描述符。

54.创建的子线程默认情况下可联合的。

55.在TCP客户端,为了接收更多的数据,可以在接收数据调用read函数时,临时更改

套接字接收缓冲区的大小•

56.SCLSNDLOWAT用来设置套接字发送缓冲区的发送低潮,当发送缓冲区的现有数据

量大于发送低潮时,便可以发送数据,select返回可写。

三、根据程序回答问题。(每问3分,共18分)

1.阅读下面的程序,并回答问题:

第01行intmain(void)

第02行{

第03行pid_tpid;

第04行intstatus;

第05行if((pid=fork())==0)

第06行]

第07行sleep(2);

08行printf("aaaaaaaaaa.\n");

09行printf("bbbbbbbbbb.\n");

10行sleep(2);

第11printf("ccccccccccAn");

12行exit(O);

第6页

0)

id>

if(p

}else

第13行

第14行

");

dd.\n

ddddd

("ddd

printf

第15行

.\n");

eeeeee

("eeee

第printf

17行

);

第exit(0

{

else

第18行

);

rAn"

erro

("fork

printf

第19行

l);

exit(

第20行

第21行

}

22行

历语句

出所经

依次写

?请

什么

径是

行路

的执

父进程

况下,

功的情

调用成

函数

fork。

(1)在

行号

n|p

沿

历语句

出所经

依次写

?请

什么

径是

行路

的执

子进程

下,

情况

功的

用成

函数调

fork。

)在

.巴(2

号。

2行

的输出

屏幕上

况下在

功的情

调用成

。函数

在fork

程序

写出

(3)请

题:

答问

并回

序,

的程

读下面

2.阅

/

省略*

文件

/*头

(l);

sleep

j;

obal=

mygl

0;

obal=

mygl

int

{

*arg)

(void

ction

d_fun

*threa

void

)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论