


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A1、Java网络程序位于TCP/IP参考模型的哪一层?(B) a) 网络层互联层b) 应用层c) 传输层网络d) 主机-网络层2、以下哪些协议位于传输层?(A D) a) TCP b) HTTP c) SMTP d) UDP f)IP3、一个服务器进程执行以下代码:ServerSocket serverSocket=new ServerSocket(80);Socket socket=serverSocket.accept();int port=socket.getPort();以下哪些说法正确?(A C D) a) 服务器进程占用80端口。b) socket.getPort()方法返回服务
2、器进程占用的本地端口,此处返回值是80。c) 当serverSocket.accept()方法成功返回,就表明服务器进程接收到了一个客户连接请求。d) socket.getPort()方法返回客户端套节字占用的本地端口。4、在客户/服务器通信模式中,客户与服务器程序的主要任务是什么?(B C)a) 客户程序在网络上找到一条到达服务器的路由。b) 客户程序发送请求,并接收服务器的响应。c) 服务器程序接收并处理客户请求,然后向客户发送响应结果。d) 如果客户程序和服务器都会保证发送的数据不会在传输途中丢失。1、B 2、A D 3、A C D 4、B C二、填空题(邮件)1、名词解释 SMTP:(
3、 )2、主要的SMTP命令SMTP命令说明( )指明邮件发送者的主机地址( )指明邮件接收者的邮件地址( )表示接下来将发送邮件内容1、简单邮件传输协议2、HELP/EHLO MAILFROM ECPT TO DATA三、简答题(线程池)写出五种使用线程池时应注意的事项,并进行简要说明?线程池可能会带来种种风险:1死锁2系统资源不足3并发错误4线程泄漏5任务过载使用线程池时需要遵循以下原则:(1)如果任务A在执行过程中需要同步等待任务B的执行结果,那么任务A不适合加入到线程池的工作队列中。(2)如果执行某个任务时可能会阻塞,并且是长时间的阻塞,则应该设定超时时间,避免工作线程永久的阻塞下去而导
4、致线程泄漏。(3)根据任务的特点,对任务进行分类,然后把不同类型的任务分别加入到不同线程池的工作队列中,这样可以根据任务的特点,分别调整每个线程池。(4)调整线程池的大小。线程池的最佳大小主要取决于系统的可用CPU的数目以及工作队列中任务的特点。(5)避免任务过载。四、JAVA对客户程序的通信过程进行了抽象,提供了通用的协议处理框架,请用UML图显示客户端协议处理框架的主要对象模型。(20分)五、编程题用JAVA编写客户、服务器程序(利用ServerSocket和Socket编写)1、 创建EchoServer(写出主要程序代码并注释 2、输出流输入流通用方法3、EchoServer类最主要方
5、法为service()方法,写出其方法中的代码。4、写出创建EchoClient的构造方法 5、EchoClient类中,最主要的方法为talk()方法,写出其方法源代码。public EchoServer() throws IOException serverSocket = new ServerSocket(port); System.out.println(服务器启动); private PrintWriter getWriter(Socket socket)throws IOException OutputStream socketOut = socket.getOutputStrea
6、m(); return new PrintWriter(socketOut,true); private BufferedReader getReader(Socket socket)throws IOException InputStream socketIn = socket.getInputStream(); return new BufferedReader(new InputStreamReader(socketIn); public void service() while (true) Socket socket=null; try socket = serverSocket.a
7、ccept(); /等待客户连接System.out.println(New connection accepted +socket.getInetAddress() + : +socket.getPort(); BufferedReader br =getReader(socket); PrintWriter pw = getWriter(socket); String msg = null; public EchoClient()throws IOException socket=new Socket(host,port); B一选择题下列各题A、B、C、D四个选项中,只有一个选项是正确的
8、。 请将正确的结果打、问题:关于ServerSocket构造方法的backlog参数,以下哪些说法是正确的?(a b d f) a) backlog参数用来显式设置操作系统中的连接请求队列的长度。b)如果没有设置backlog参数,那么连接请求队列的长度由操作系统决定。c)当服务器端的连接请求队列已满,客户端就无法建立与服务器的连接。d)如果backlog参数的值大于操作系统限定的队列的最大长度,那么backlog参数被忽略。e)连接请求队列直接由ServerSocket创建并管理。f) ServerSocket的accept()方法从连接请求队列中取出连接请求。、问题:对于以下程序代码:Se
9、rverSocket serverSocket=new ServerSocket(8000);serverSocket.setReuseAddress(true); 哪个说法是正确的?(C) a)以上代码运行时出错b)以上代码编译时出错c)以上代码尽管编译和运行不会出错,但对SO_REUSEADDR选项的设置无效d)以上说法都不正确、如何判断一个ServerSocket已经与特定端口绑定,并且还没有被关闭? (B) a) boolean isOpen=serverSocket.isBound(); b)boolean isOpen=serverSocket.isBound() & !serve
10、rSocket.isClosed();c) boolean isOpen=serverSocket.isBound() & serverSocket.isConnected(); d) boolean isOpen=!serverSocket.isClosed();、问题:对于以下代码:int n=socketChannel.read(byteBuffer); /假定n=0 byteBuffer.flip();假定执行socketChannel.read(byteBuffer)方法前,byteBuffer的容量、极限和位置分别为c、l和p,执行完以上代码后,byteBuffer的容量、极限和位
11、置分别是多少? B a) 容量为c,极限为l,位置为p+n b) 容量为c,极限为p+n,位置为0 c) 容量为l,极限为p+n,位置为0 d) 容量为c,极限为p+n,位置为p+n、问题:线程执行Selector对象的select(long timeout)方法时进入阻塞状态,在哪些情况,线程会从select()方法中返回? (abde)a) 至少有一个SelectionKey的相关事件已经发生。b) 其他线程调用了Selector对象的wakeup()方法。c) 与Selector对象关联的一个SocketChannel对象被关闭。d) 当前执行select()方法的线程被其他线程中断。e
12、) 超出了等待时间。、问题: 在HTTP响应结果中,哪个状态代码表示响应成功?选项:D a)404 b)405 c)500 d)200、问题:对于HTTP的GET请求方式,用户提交的表单数据位于HTTP请求的哪一部分?A选项:a) 请求头中 b)请求正文中一、选择题 1、a b d f 2、c 3、b 4、b 5、abde 6、d 7、a二、JAVA对客户程序的通信过程进行了抽象,提供了通用的协议处理框架,请用UML图显示客户端协议处理框架的主要对象模型。三、填空题协议规定,请求由部分构成,分别是:请求:请求方式、协议版本请求头请求正文与请求相似,响应也由部分构成,分别是:响应:协议版本、状态
13、代码、描述响应头响应正文四、编程题创建非阻塞的EchoServer 1、处理接收连接就绪事件 、处理读就绪事件 、处理写就绪事件 、编码与解码、在非阻塞模式下确保发送一行数据 、删除ByteBuffer中的已处理数据/创建一个Selector对象selector = Selector.open();/创建一个ServerSocketChannel对象serverSocketChannel= ServerSocketChannel.open();/使得在同一个主机上关闭了服务器程序,紧接着再启动该服务器程序时,/可以顺利绑定到相同的端口serverSocketChannel.socket().s
14、etReuseAddress(true);/使ServerSocketChannel工作于非阻塞模式serverSocketChannel.configureBlocking(false);/把服务器进程与一个本地端口绑定serverSocketChannel.socket().bind(new InetSocketAddress(port);public void service() throws IOException serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT ); while (selector.selec
15、t() 0 ) /第一层while循环 Set readyKeys = selector.selectedKeys(); /获得Selector的selected-keys集合 Iterator it = readyKeys.iterator(); while (it.hasNext() /第二层while循环 SelectionKey key=null; try /处理SelectionKey key = (SelectionKey) it.next(); /取出一个SelectionKey it.remove(); /把SelectionKey从Selector的selected-key集合中删除 if (key.isAcceptable() 处理接收连接就绪事件; if (key.isReadable() 处理读就绪事件; if (key.isWritable() 处理写就绪事件; catch(IOException e)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工地钢筋碎料管理制度
- 儿童重点人群管理制度
- 公司办公用章管理制度
- 公用浴室使用管理制度
- 婚丧嫁娶备案管理制度
- 关于趸船安全管理制度
- 团委预算业务管理制度
- 值班护士宵夜管理制度
- 宿舍教室卫生管理制度
- 医院数据提取管理制度
- 《大数据技术原理与应用(第3版)》期末复习题库(含答案)
- 中学物理教材教法复习题
- 第13课第1课时立足专业谋划发展【中职专用】《心理健康与职业生涯》(高教版2023基础模块)
- 中职英语基础模块一Unit 8 People and events Reading
- 供应商黑名单
- 船用缆绳标准
- 班主任育人故事(通用17篇)
- 食材配送投标方案(技术方案)
- 第三章 结构材料的力学性能及指标
- 国开经济法律基础形考任务国开电大《经济法律基础》形考任务3答案
- 2022年1月福建省普通高中学业水平合格性考试化学试题
评论
0/150
提交评论