网络程序设计习题课_第1页
网络程序设计习题课_第2页
网络程序设计习题课_第3页
网络程序设计习题课_第4页
网络程序设计习题课_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

网络程序设计—Java语言网络编程练习题1Java网络程序位于TCP/IP参考模型的哪一层?a)网络层互联层b)应用层c)传输层网络d)主机-网络层答案:bCompanyLogo练习题2以下哪些协议位于传输层?a)TCPb)HTTPc)SMTPd)UDPf)IP答案:a,dCompanyLogo练习题3假定一个进程已经占用TCP的80端口,它还能否占用UDP的80端口?a)可以b)不可以答案:aCompanyLogo练习题4一个客户进程执行以下代码,以下哪些说法正确?Socketsocket1=newSocket(host,port);Socketsocket2=newSocket(host,port);a)socket1与socket2占用不同的本地端口。b)Socket构造方法中的port参数指定占用的本地端口。c)当Socket构造方法成功返回,就表明建立了与服务器的一个TCP连接。d)执行第二行程序代码会抛出异常,因为一个客户进程只能与服务器端建立一个TCP连接。答案:a,cCompanyLogo练习题5一个服务器进程执行以下代码:以下哪些说法正确?

ServerSocket

serverSocket=newServerSocket(80);Socketsocket=serverSocket.accept();

intport=socket.getPort();a)服务器进程占用80端口。b)socket.getPort()方法返回服务器进程占用的本地端口,此处返回值是80。c)当serverSocket.accept()方法成功返回,就表明服务器进程接收到了一个客户连接请求。d)socket.getPort()方法返回客户端套节字占用的本地端口。答案:a,c,dCompanyLogo练习题6对于以下程序代码:下面哪些说法是正确的?Socketsocket=newSocket();SocketAddressra1=newInetSocketAddress("localhost",8000);SocketAddressra2=newInetSocketAddress("localhost",8001);socket.connect(remoteAddr1,60000);//第4行socket.connect(remoteAddr2,60000);//第5行a)以上程序代码可以顺利编译和运行通过。b)第1行程序代码创建了一个与本地匿名端口绑定的Socket对象。c)第1行程序代码创建的Socket对象没有与任何服务器建立连接,并且没有绑定任何本地端口。d)第5行程序代码会运行出错,因为一个Socket对象只允许建立一次连接。e)第4行程序代码使Socket对象与一个服务器建立连接,并且绑定一个本地匿名端口。答案:c,d,eCompanyLogo练习题7当客户端执行以下程序代码时:Socketsocket=newSocket("angel",80);如果远程服务器angel不存在,会出现什么情况?a)构造方法抛出UnknownHostException异常。b)客户端一直等待连接,直到连接超时,从而抛出

SocketTimeoutException。c)抛出BindException。d)构造方法返回一个Socket对象,但它不与任何服务器连接。答案:aCompanyLogo练习题8Socket类的哪个方法返回Socket对象绑定的本地端口a)getPort()b)getLocalPort()c)getRemotePort()d)不存在这样的方法,因为Socket对象绑定的本地端口对程序是透明的。答案:bCompanyLogo练习题9如何判断一个Socket对象当前是否处于连接状态?a)boolean

isConnected=socket.isConnected()&&socket.isBound();b)boolean

isConnected=socket.isConnected()&&!socket.isClosed();c)boolean

isConnected=socket.isConnected()&&!socket.isBound();d)boolean

isConnected=socket.isConnected();答案:bCompanyLogo练习题10关于ServerSocket构造方法的backlog参数,以下哪些说法是正确的?a)backlog参数用来显式设置操作系统中的连接请求队列的长度。b)如果没有设置backlog参数,那么连接请求队列的长度由操作系统决定。c)当服务器端的连接请求队列已满,客户端就无法建立与服务器的连接。d)如果backlog参数的值大于操作系统限定的队列的最大长度,那么backlog参数被忽略。e)连接请求队列直接由ServerSocket创建并管理。f)ServerSocket的accept()方法从连接请求队列中取出连接请求。答案:a,b,d,fCompanyLogo练习题11对于以下程序代码,哪个说法是正确的

ServerSocket

serverSocket=newServerSocket(8000);

serverSocket.setReuseAddress(true);

a)以上代码运行时出错b)以上代码编译时出错c)以上代码尽管编译和运行不会出错,但对SO_REUSEADDR选项的设置无效d)以上说法都不正确答案:cCompanyLogo练习题12如何判断一个ServerSocket已经与特定端口绑定,并且还没有被关闭?a)boolean

isOpen=serverSocket.isBound();b)boolean

isOpen=serverSocket.isBound()&&!serverSocket.isClosed();c)boolean

isOpen=serverSocket.isBound()&&serverSocket.isConnected();d)boolean

isOpen=!serverSocket.isClosed();答案:bCompanyLogo练习题13ServerSocket与Socket都有一个SO_TIMEOUT选项,它们的作用是否相同?a)相同b)不同答案:bCompanyLogo练习题14在服务器程序中,线程在哪些情况可能会进入阻塞状态?a)线程执行Socket的getInputStream()方法获得输入流。b)线程执行Socket的getOutputStream()方法获得输出流。c)线程执行ServerSocket的accept()方法。d)线程从Socket的输入流读入数据。e)线程向Socket的输出流写一批数据。答案:c,d,eCompanyLogo练习题15ServerSocketChannel可能发生哪些事件?a)SelectionKey.OP_ACCEPT:接收连接就绪事件b)SelectionKey.OP_CONNECT:连接就绪事件。c)SelectionKey.OP_READ:读就绪事件。d)SelectionKey.OP_WRITE:写就绪事件。答案:aCompanyLogo练习题16SocketChannel可能发生哪些事件?a)SelectionKey.OP_ACCEPT:接收连接就绪事件b)SelectionKey.OP_CONNECT:连接就绪事件。c)SelectionKey.OP_READ:读就绪事件。d)SelectionKey.OP_WRITE:写就绪事件。答案:b,c,dCompanyLogo练习题17对于以下代码:

intn=socketChannel.read(byteBuffer);//假定n>=0

byteBuffer.flip();假定执行socketChannel.read(byteBuffer)方法前,byteBuffer的容量、极限和位置分别为c、l和p,执行完以上代码后,byteBuffer的容量、极限和位置分别是多少?a)容量为c,极限为l,位置为p+nb)容量为c,极限为p+n,位置为0c)容量为l,极限为p+n,位置为0d)容量为c,极限为p+n,位置为p+n答案:bCompanyLogo练习题18在哪些情况,SelectionKey对象会失效?a)程序调用SelectionKey的cancel()方法。b)程序调用SelectionKey的close()方法。c)关闭与SelectionKey关联的Channel。d)与SelectionKey关联的Selector被关闭。答案:a,c,dCompanyLogo练习题19线程执行Selector对象的select(longtimeout)方法时进入阻塞状态,在哪些情况,线程会从select()方法中返回?a)至少有一个SelectionKey的相关事件已经发生。b)其他线程调用了Selector对象的wakeup()方法。c)与Selector对象关联的一个SocketChannel对象被关闭。d)当前执行select()方法的线程被其他线程中断。e)超出了等待时间。答案:a,b,d,eCompanyLogo练习题20以下哪些叙述是正确的?a)DatagramSocket的send(DatagramPacket

src)方法发送数据报时,如果无法送达接收方,该方法会抛出IOException。b)UDP协议是无连接的协议。c)对于用于接收数据的DatagramPacket,如果实际接收到的数据报的长度大于DatagramPacket的长度,那么多余的数据就会被丢弃。d)DatagramSocket的getInputStream()方法用于获得输入流。答案:b,cCompanyLogo练习题21以下是DatagramPacket的构造方法,哪些用于发送数据报?a)public

DatagramPacket(byte[]data,intlength)b)public

DatagramPacket(byte[]data,intoffset,intlength)c)public

DatagramPacket(byte[]data,intoffset,int

length,InetAddress

address,intport)d)public

DatagramPacket(byte[]data,int

offset,int

length,SocketAddressaddress)答案:c,dCompanyLogo练习题22当DatagramSocket接收到了来自任意一个主机的数据报,如果知道该数据报的发送者的UDP端口?a)调用DatagramPacket的getPort()方法b)调用DatagramSocket的getPort()方法c)调用DatagramPacket的getRemotePort()方法d)调用DatagramSocket的getRemotePort()方法答案:aCompanyLogo练习题23关于DatagramSocket的connect()和disconnect()方法,下面哪些说法是正确?a)connect()方法使得DatagramSocket暂时只能与特定的远程DatagramSocket通信。b)DatagramSocket的connect()方法与Socket的connect()方法的作用相同。c)可以对一个DatagramSocket对象多次调用connect()方法。d)调用了DatagramSocket的disconnect()方法后,这个DatagramSocket就失效了,不能再收发数据报。答案:a,cCompanyLogo练习题24关于DatagramSocket的选项,下面哪些说法是正确的?a)SO_TIMEOUT选项表示接收数据报以及发送数据报时的等待超时时间。b)许多网络都都限定了接收缓冲区大小的最大值,如果DatagramSocket的setReceiveBufferSize(intsize)方法的参数size超过该值,那setReceiveBufferSize(

intsize)方法所作的设置无效。c)UDPSocket和TCPSocket的SO_REUSEADDR选项的作用相同。d)SO_BROADCAST选项决定是否允许对网络广播地址收发数据报。答案:b,dCompanyLogo练习题25关于DatagramChannel的read(ByteBuffer[]srcs)方法,下面哪些说法是正确的?a)read()方法要求DatagramChannel已经建立连接。b)如果ByteBuffer缓冲区无法容纳数据报中的所有数据,那么read()方法会抛出BufferOverflowException。c)当DatagramChannel工作于非阻塞模式,并且没有就绪的数据报,read()方法立即返回0。d)当DatagramChannel工作于阻塞模式,并且没有就绪的数据报,read()方法会进入阻塞状态。答案:a,c,dCompanyLogo习题在TCP/IP协议簇中,

协议属于网络层的无连接协议。(24)A.IP

B.SMTPC.SNMP

D.TCP在TCP/IP协议簇中,

属于自上而下的第二层。

(25)A.ICMP

B.SNMP

C.UDP

D.IP以下关于TCP/IP体系结构的描述中,正确的是_

_。A.TCP/IP提供无连接的网络服务,所以不适合话音和视流等流式业务

B.TCP/IP定义了OSI/RM的物理层和数据链路层

C.在TCP/IP体系结构中,一个功能层可以有多个协议协同工作

D.TCP/IP体系结构的应用层相当于OSI/RM的应用层和表示层CompanyLogo练习求下列地址的网络编号和广播地址

55/160/28CompanyLogo练习路由器端口的IP地址为8/22,则该端口的网络地址是

(27)。(27)A. B.C. D.某主机的IP地址为54/22,其子网掩码是

___A. B.C. D.CompanyLogo练习某公司网络地址是/20,被划分成16个子网,则每个子网的子网掩码为(30),包含的最大的主机数是(31)。(30)A. B.C. D.(31)A.250 B.254C.255D.256DBAABCompanyLogo练习CompanyLogo练习某主机的ip地址为2/20,其子网掩码为__A.B.C.D.下面的选项中,属于本地回路地址的是_____A.B.C.D.常用的网络地址有A、B、C三类,一个B类网络最多可以包含多少

(30)主机,B类网络默认子网掩码为

(31)

(30)A.1600个B.6万多个C.300个D.254个

(31)A.B.C.D.

BCBBCompanyLogo练习题26默认的序列化方式有什么特点?a)仅仅对对象的非transient的实例变量进行序列化。b)不会序列化对象的transient的实例变量。c)会序列化静态变量。d)会序列化对象的所有public类型的成员变量。答案:a,bCompanyLogo练习题27默认的反序列化方式有什么特点?a)可能会调用类的静态代码块。b)一定会调用类的静态代码块。c)不会调用类的任何构造方法。d)会调用类的不带参数的构造方法。答案:a,cCompanyLogo练习题28关于Externalizable接口,下面哪些说法正确?a)Externalizable接口继承自Serializable接口。b)writeExternal()方法负责序列化操作。c)readExternal()方法负责反序列化操作。d)在对实现了Externalizable接口的类的对象进行反序列化时,一定会先调用类的不带参数的构造方法。e)在对实现了Externalizable接口的类的对象进行反序列化时,一定会先调用类的静态代码块。f)一个类如果实现了Externalizable接口,那么它必须具有public类型的不带参数的构造方法。答案:a,b,c,d,fCompanyLogo练习题29以下哪些方法在Class类中定义?a) getConstructors()b) getPrivateMethods()c) getDeclaredFields()d) getImports()e)setField()答案:a,cCompanyLogo练习题30以下哪些说法正确?a)动态代理类与静态代码类一样,必须由开发人员先编写源代码,并编译成.class文件。b)代理类与被代理类的具有同样的接口。c)java.lang.Exception类实现了java.io.Serializable接口,因此Exception对象可以在网络上传输。d)java.lang.reflect包中的Proxy类提供了创建动态代理类的方法。答案:b,c,dCompanyLogo练习题31以下哪些说法

温馨提示

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

评论

0/150

提交评论