admin 管理员组文章数量: 887062
2023年12月22日发(作者:python和qt哪个好)
网络编程技术复习题1java习题
预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制
一
练习题1
问题:Java网络程序位于TCP/IP参考模型的哪一层(单选)
选项:B
–a) 网络层互联层
–b) 应用层
–c) 传输层网络
–d) 主机-网络层
练习题2
问题:以下哪些协议位于传输层(多选)
选项:AD
–a) TCP
–b) HTTP
–c) SMTP
–d) UDP
–f)IP
练习题3
问题:假定一个进程已经占用TCP的80端口,它还能否占用UDP的80端口(单选)A
选项:
–a)可以
–b)不可以
练习题4
问题:.一个客户进程执行以下代码
Socket socket1=new Socket(host,port);
Socket socket2=new Socket(host,port);
以下哪些说法正确(多选)
选项:AC
–a)socket1与socket2占用不同的本地端口。
–b) Socket构造方法中的port参数指定占用的本地端口。
–c) 当Socket构造方法成功返回,就表明建立了与服务器的一个TCP连接。
–d) 执行第二行程序代码会抛出异常,因为一个客户进程只能与服务器端建立一个TCP连接。
练习题5
问题:有一种协议规定:如果客户端发送一行字符串“date”,服务器端就返回当前日期信息,如果客户端发送一行字符串“exit”,服务器端就结束与客户端的通信。这种协议应该属于哪一层的协议(单选)?选项:B
–a) 网络层互联层
–b) 应用层
–c) 传输层网络
–d) 主机-网络层
练习题6
问题:HTTP协议规定,默认情况下,HTTP服务器占用的TCP端口号是什么(单选)
选项:C
–a)21
–b)23
–c)80
–d)任意一个未被占用的端口号
练习题7
问题:在客户/服务器通信模式中,客户与服务器程序的主要任务是什么(多选)
选项:BC
–a) 客户程序在网络上找到一条到达服务器的路由。
–b) 客户程序发送请求,并接收服务器的响应。
–c) 服务器程序接收并处理客户请求,然后向客户发送响应结果。
–d) 如果客户程序和服务器都会保证发送的数据不会在传输途中丢失。
练习题8
问题:从哪里可以找到描述TCP/IP协议的具体文档(单选)
选项:D
–a) JDK的JavaDoc文档
–b) NIC的官方网站
–c) 国际标准化组织(ISO)的官方网站
–d) RFC的官方网站
练习题9
问题:一个服务器进程执行以下代码:
ServerSocket serverSocket=new ServerSocket(80);
Socket socket=();
int port=();
以下哪些说法正确(多选)
选项:ACD
–a) 服务器进程占用80端口。
–b) ()方法返回服务器进程占用的本地端口,此处返回值是80。
–c) 当()方法成功返回,就表明服务器进程接收到了一个客户连接请求。
–d) ()方法返回客户端套节字占用的本地端口。
二
练习题1
问题:对于以下程序代码:
Socket socket=new Socket(); //第1行
SocketAddress remoteAddr1=new
InetSocketAddress("localhost",8000); //第2行
SocketAddress
(remoteAddr1, 60000); //第4行
(remoteAddr2, 60000); //第5行
下面哪些说法是正确的(多选)
选项:CDE
–a)以上程序代码可以顺利编译和运行通过。
–b)第1行程序代码创建了一个与本地匿名端口绑定的Socket对象。
–c) 第1行程序代码创建的Socket对象没有与任何服务器建立连接,并且没有绑定任何本地端口。
–d) 第5行程序代码会运行出错,因为一个Socket对象只允许建立一次连接。
–e) 第4行程序代码使Socket对象与一个服务器建立连接,并且绑定一个本地匿名端口。
练习题2
问题:当客户端执行以下程序代码时:
Socket socket=new Socket("angel",80);
如果远程服务器angel不存在,会出现什么情况(单选)
选项:A
–a) 构造方法抛出UnknownHostException异常。
–b) 客户端一直等待连接,直到连接超时,从而抛出SocketTimeoutException。
–c) 抛出BindException。
–d) 构造方法返回一个Socket对象,但它不与任何服务器连接。
练习题3
问题:Socket类的哪个方法返回Socket对象绑定的本地端口(单选)
remoteAddr2=new
InetSocketAddress("localhost",8001); //第3行
选项:B
–a) getPort()
–b) getLocalPort()
–c) getRemotePort()
–d) 不存在这样的方法,因为Socket对象绑定的本地端口对程序是透明的。
练习题4
问题:以下两段程序代码是否等价(单选)
//第一段程序
();
();
//第二段程序
();
选项:B
–a)等价
–b)不等价
练习题5
问题:以下哪个选项设定Socket的接收数据时的等待超时时间(单选)
选项:D
–a) SO_LINGER
–b) SO_RCVBUF
–c) SO_KEEPALIVE
–d) SO_TIMEOUT
练习题6
问题:如何判断一个Socket对象当前是否处于连接状态(单选)
选项:B
–a) boolean isConnected=() && ();
–b) boolean isConnected=() && !();
–c) boolean isConnected=() && !();
–d) boolean isConnected=();
练习题7
问题:客户程序希望底层网络的IP层提供高可靠性和最小延迟传输服务,客户程序中应该如何提出这一请求(单选)
选项:C
–a)调用Socket的setPerformancePreferences()方法。
–b)设置Socket的SO_SERVICE选项。
–c)调用Socket的setTrafficClass()方法。
–d)客户程序无法提出这种请求,必须直接配置底层网络。
三
练习题1
问题:关于ServerSocket构造方法的backlog参数,以下哪些说法是正确的(多选)
选项:ABDF
–a) backlog参数用来显式设置操作系统中的连接请求队列的长度。
–b)如果没有设置backlog参数,那么连接请求队列的长度由操作系统决定。
–c)当服务器端的连接请求队列已满,客户端就无法建立与服务器的连接。
–d)如果backlog参数的值大于操作系统限定的队列的最大长度,那么backlog参数被忽略。
–e)连接请求队列直接由ServerSocket创建并管理。
–f) ServerSocket的accept()方法从连接请求队列中取出连接请求。
练习题2
问题:对于以下程序代码:
ServerSocket serverSocket=new ServerSocket(8000);
(true);
哪个说法是正确的(单选)
选项:C
–a)以上代码运行时出错
–b)以上代码编译时出错
–c)以上代码尽管编译和运行不会出错,但对SO_REUSEADDR选项的设置无效
–d)以上说法都不正确
练习题3
问题:如何判断一个ServerSocket已经与特定端口绑定,并且还没有被关闭(单选)
选项:B
–a) boolean isOpen=();
–b)boolean isOpen=() && !();
–c) boolean isOpen=() && ();
–d) boolean isOpen=!();
练习题4
问题:ServerSocket与Socket都有一个SO_TIMEOUT选项,它们的作用是否相同
选项:B
–a)相同
–b)不同
四
练习题1
问题:在服务器程序中,线程在哪些情况可能会进入阻塞状态
选项:CDE
–a) 线程执行Socket的getInputStream()方法获得输入流。
–b) 线程执行Socket的getOutputStream()方法获得输出流。
–c) 线程执行ServerSocket的accept()方法。
–d) 线程从Socket的输入流读入数据。
–e) 线程向Socket的输出流写一批数据。
练习题2
问题:ServerSocketChannel可能发生哪些事件
选项:A
–a) :接收连接就绪事件
–b) :连接就绪事件。
–c) :读就绪事件。
–d) :写就绪事件。
练习题3
问题:SocketChannel可能发生哪些事件
选项:BCD
–a) :接收连接就绪事件
–b) :连接就绪事件。
–c) :读就绪事件。
–d) :写就绪事件。
练习题4
问题:对于以下代码:
int n=(byteBuffer); //假定n>=0
();
假定执行(byteBuffer)方法前,byteBuffer的
容量、极限和位置分别为c、l和p,执行完以上代码后,byteBuffer
的容量、极限和位置分别是多少
选项:B
–a) 容量为c,极限为l,位置为p+n
–b) 容量为c,极限为p+n,位置为0
–c) 容量为l,极限为p+n,位置为0
–d) 容量为c,极限为p+n,位置为p+n
练习题5
问题:在哪些情况,SelectionKey对象会失效
选项:ACD
–a) 程序调用SelectionKey的cancel()方法。
–b) 程序调用SelectionKey的close()方法。
–c) 关闭与SelectionKey关联的Channel。
–d) 与SelectionKey关联的Selector被关闭。
练习题6
问题:线程执行Selector对象的select(long timeout)方法时进入阻塞状态,在哪些情况,线程会从select()方法中返回
选项:ABDE
–a) 至少有一个SelectionKey的相关事件已经发生。
–b) 其他线程调用了Selector对象的wakeup()方法。
–c) 与Selector对象关联的一个SocketChannel对象被关闭。
–d) 当前执行select()方法的线程被其他线程中断。
–e) 超出了等待时间。
练习题7
问题:默认情况下,SocketChannel对象处于什么模式
选项:A
–a)阻塞模式
–b)非阻塞模式
五
练习题1
问题:在HTTP响应结果中,哪个状态代码表示响应成功
选项:D
–a)404
–b)405
–c)500
–d)200
练习题2
问题:对于HTTP的POST请求方式,用户提交的表单数据位于HTTP请求的哪一部分
选项:B
–a) 请求头中
–b)请求正文中
练习题3
问题:对于HTTP的GET请求方式,用户提交的表单数据位于HTTP请求的哪一部分
选项:A
–a) 请求头中
–b)请求正文中
练习题4
问题:HTTP请求中的请求头与请求正文之间必须以空行隔开,同样,HTTP响应中的响应头与响应正文之间也必须以空行隔开。这句话是否正确
选项:A
–a)正确
–b)不正确
六
练习题1
问题:ContentHandler实例由谁创建
选项:D
–a) URL类
–b) URLConnection
–c) URLStreamHandler
–d) ContentHandlerFactory
练习题2
问题: URLConnection类的doInput属性和doOutput属性的默认值分别是什么
选项:B
–a)true,true
–b)true,false
–c)false,false
–d)false,true
练习题3
问题:URLConnection的getContent()方法会调用哪个类的getContent()方法
选项:C
–a) URL类
–b) URLStreamHandler类
–c) ContentHandler类
–d) 不会再调用其他类的getContent()方法
练习题4
问题:setURLStreamHandlerFactory()方法是在哪个类中定义的
选项:A
–a) URL类
–b) URLStreamHandler类
–c) ContentHandler类
–d) URLConnection类
练习题5
问题:以下哪些类具有相应的工厂类
选项:BC
–a) URL类
–b) URLStreamHandler类
–c) ContentHandler类
–d) URLConnection类
七
练习题1
问题:对于以下程序代码:
String text="Hello World!";
JEditorPane jep=new JEditorPane();
(text);
下面哪些说法正确
选项:BD
–a) 在JEditorPane的界面上显示斜体的“Hello World!”
–b) 在JEditorPane的界面上显示普通文本“Hello World!”
–c) 默认情况下,JEditorPane的内容类型为"text/html"
–d) 默认情况下,JEditorPane的内容类型为"text/plain"
练习题2
问题:当用户浏览由JEditorPane展示的网页,以下哪些行为会触发HyperlinkEvent事件
选项:AC
–a) 用户选择超级链接
–b) 用户把鼠标移动到网页区域的任何位置
–c) 用户提交表单
–d) 用户在网页区域内点击鼠标的右键
练习题3
问题: hyperlinkUpdate()方法在哪个类中定义
选项:D
–a) JEditorPane
–b) HyperlinkEvent
–c) FormSubmitEvent
–d) HyperlinkListener
八
练习题1
问题:以下哪些叙述是正确的
选项:BC
–a) DatagramSocket的send(DatagramPacket src)方法发送数据报时,如果无法送达接收方,该方法会抛出IOException。
–b) UDP协议是无连接的协议。
–c) 对于用于接收数据的DatagramPacket,如果实际接收到的数据报的长度大于DatagramPacket的长度,那么多余的数据就会被丢弃。
–d) DatagramSocket的getInputStream()方法用于获得输入流。
练习题2
问题:以下是DatagramPacket的构造方法,哪些用于发送数据报
选项:CD
–a)public DatagramPacket(byte[] data,int length)
–b)public DatagramPacket(byte[] data,int offset, int length)
–c)public DatagramPacket(byte[]
address,int
data,int offset, int
length,InetAddress
address)
练习题3
问题:当DatagramSocket接收到了来自任意一个主机的数据报,如果知道该数据报的发送者的UDP端口?选项:A
–a) 调用DatagramPacket的getPort()方法
–b) 调用DatagramSocket的getPort()方法
–c) 调用DatagramPacket的getRemotePort()方法
–d) 调用DatagramSocket的getRemotePort()方法
练习题4
问题:关于DatagramSocket的connect()和disconnect()方法,下面哪些说法是正确
选项:AC
–a) connect()方法使得DatagramSocket暂时只能与特定的远程DatagramSocket通信。
–b) DatagramSocket的connect()方法与Socket的connect()方法的作用相同。
–c) 可以对一个DatagramSocket对象多次调用connect()方法。
–d) 调用了DatagramSocket的disconnect()方法后,这个DatagramSocket就失效了,不能再收发数据报。
练习题5
问题:关于DatagramSocket的选项,下面哪些说法是正确的
选项:BD
port)–d)public
DatagramPacket(byte[] data,int offset,int length,SocketAddress
–a) SO_TIMEOUT选项表示接收数据报以及发送数据报时的等待超时时间。
–b) 许多网络都都限定了接收缓冲区大小的最大值,如果DatagramSocket的setReceiveBufferSize(int size)方法的参数size超过该值,那么setReceiveBufferSize(int size)方法所作的设置无效。
–c) UDP Socket和TCP Socket的SO_REUSEADDR选项的作用相同。
–d) SO_BROADCAST选项决定是否允许对网络广播地址收发数据报。
练习题6
问题:关于DatagramChannel的read(ByteBuffer[] srcs)方法,下面哪些说法是正确的
选项:ACD
–a) read()方法要求DatagramChannel已经建立连接。
–b) 如果ByteBuffer缓冲区无法容纳数据报中的所有数据,那么read()方法会抛出
BufferOverflowException。
–c) 当DatagramChannel工作于非阻塞模式,并且没有就绪的数据报,read()方法立即返回0。
–d) 当DatagramChannel工作于阻塞模式,并且没有就绪的数据报,read()方法会进入阻塞状态。
练习题7
问题:MulticastSocket的哪些方法要求MulticastSocket已经加入到主播组
选项:BC
–a) send()方法
–b) receive()方法
–c) leaveGroup()方法
–d) bind()方法
版权声明:本文标题:网络编程技术复习题1java习题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703202443h442079.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论