一、任务要求

  • 0 在Ubuntu中用自己的有位学号建一个文件,教材p402代码
  • 1 修改代码,至少增加一个问题和答案
  • 2 随机选多个问题中的一个进行提问,服务器要正确回答问题
  • 3 提交运行结果截图,要把所有问题都运行到。

二、源代码

  • 添加的内容

    添加的问题:"提交本次测试的时间是几月几号?"

    添加的回答:"提交本次测试的时间是2019年5月13日"

  • Client.java

  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.Random;
  4. public class Client {
  5. public static void main(String args[]) {
  6. String [] mess ={"2010世界杯在哪举行?","巴西进入世界杯了码?","中国进入世界杯了码?","提交本次测试的时间是几月几号?"};
  7. Socket mysocket;
  8. DataInputStream in=null;
  9. DataOutputStream out=null;
  10. int i = (int) (Math.random() * 4 + 0);
  11. try{ mysocket=new Socket("127.0.0.1",2010);
  12. in=new DataInputStream(mysocket.getInputStream());
  13. out=new DataOutputStream(mysocket.getOutputStream());
  14. //for(int i=0;i<mess.length;i++) {
  15. out.writeUTF(i+"");//传特定的随机值给Server类
  16. out.writeUTF(mess[i]);
  17. String s=in.readUTF(); //in读取信息,堵塞状态
  18. System.out.println("客户收到服务器的回答:"+s);
  19. Thread.sleep(500);
  20. //}
  21. }
  22. catch(Exception e) {
  23. System.out.println("服务器已断开"+e);
  24. }
  25. }
  26. }
  • Server.java
  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.Random;
  4. import static java.lang.Integer.parseInt;
  5. public class Server {
  6. public static void main(String args[]) {
  7. String[] answer = {"南非", "进入世界杯了", "哈哈...问题真逗!", "提交本次测试的时间是2019年5月13日"};
  8. ServerSocket serverForClient = null;
  9. Socket socketOnServer = null;
  10. DataOutputStream out = null;
  11. DataInputStream in = null;
  12. try {
  13. serverForClient = new ServerSocket(2010);
  14. } catch (IOException e1) {
  15. System.out.println(e1);
  16. }
  17. try {
  18. System.out.println("等待客户呼叫");
  19. socketOnServer = serverForClient.accept(); //堵塞状态,除非有客户呼叫
  20. out = new DataOutputStream(socketOnServer.getOutputStream());
  21. in = new DataInputStream(socketOnServer.getInputStream());
  22. //for(int i=0;i<answer.length;i++) {
  23. String s1 = in.readUTF();
  24. int i = parseInt(s1);
  25. String s = in.readUTF(); // in读取信息,堵塞状态
  26. System.out.println("服务器收到客户的提问:" + s);
  27. out.writeUTF(answer[i]);
  28. Thread.sleep(500);
  29. //}
  30. } catch (Exception e) {
  31. System.out.println("客户已断开" + e);
  32. }
  33. }
  34. }

三、运行截图

  • 1.问题1

    • 问题:

    • 回答:

  • 2.问题2

    • 问题:

    • 回答:

  • 3.问题3

    • 问题:

    • 回答:

  • 4.问题4

    • 问题:

    • 答案:

SP.码云链接

教材代码完成情况测试P402(ch13课上测试)的更多相关文章

  1. 教材代码完成情况测试P171(课上测试)

    一.任务详情 0 在Ubuntu中用自己的有位学号建一个文件,教材p171 Example7_7 增加一个类DangerException2, 显示"超轻"异常,超轻的阈值minC ...

  2. 教材代码完成情况测试P186(课上测试)

    一.任务详情 0 在Ubuntu中用自己的有位学号建一个文件,教材p186 Example8_8 1.修改p186 Example8_8中代码,密钥password不用手动输入,使用Random产生随 ...

  3. 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试

    目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...

  4. 第六周课上测试-3-ch02补充作业

    实验要求: 编写一个程序 "week0603学号.c",运行下面代码: short int v = -学号后四位 unsigned short uv = (unsigned sho ...

  5. 2018-2019-1 20165330 《信息安全系统设计基础》第六周课上测试ch02&课下作业

    课上测试 测试-3-ch02 任务详情 编写一个程序 "week0203学号.c",运行下面代码: 1 short int v = -学号后四位 2 unsigned short ...

  6. 第六周课上测试-1-ch02

    第六周课上测试-1-ch02 1. 要求: 1.参考附图代码,编写一个程序 "week0601学号.c",判断一下你的电脑是大端还是小端. 2. 提交运行结果"学号XXX ...

  7. Bag类的接口的实现与测试(课上测试补做)

    Bag类的接口的实现与测试(课上测试补做) 截图 由于截图有一定的的限制就没有吧所有的代码截进去,后面有代码. 代码 package ClassTest; import java.util.Objec ...

  8. 20165305 苏振龙《Java程序设计》第八周课上测试补做

    1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图 2. ...

  9. 20165221-week2课上测试补做

    week2-课上测试补做 测试一: 参考附图代码,编写一个程序 "week0201学号.c",判断一下你的电脑是大端还是小端. 提交运行结果"学号XXXX的笔记本电脑是X ...

随机推荐

  1. python之字符串类型及其操作

    1.1字符串类型的表示 字符串是字符的序列表示,可以由一对单引号('). 双引号(")或三引号(’")构成.其中,单引号和双引号都可以表示单行字符串,两者作用相同.使用单引号时,双 ...

  2. 关于MySQL的索引的几件小事

    零.索引简介 1. 索引是什么 ①MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构. ②可以简单的理解为"排好序的快速查找数据结构". ③除了 ...

  3. href="javascript:show_login()"意思

    整句话意味着当你点击一个超链接时,你会触发函数show_login. Href是一个超链接,通过单击该超链接触发. javascript:后面是JS代码 show_login():表示JS的函数的油烟 ...

  4. 简单聊聊服务发现(redis, zk,etcd, consul)(转载)

    服务发现并没有怎样的高深莫测,它的原理再简单不过.只是市面上太多文章将服务发现的难度妖魔化,读者被绕的云里雾里,顿觉自己智商低下不敢高攀. 服务提供者是什么,简单点说就是一个HTTP服务器,提供了AP ...

  5. Spring自定义标签的实现

    首先 简单写下 spring xml解析的过程 通过一段简单的 调用spring代码开始 public static void main(String[] args) { ApplicationCon ...

  6. linux下共享热点抓包

    Linux有一个抓包工具叫tcpdump,这个命令还是挺强大的.简单列举一下它的参数 # tcpdump -h tcpdump version 4.9.2 libpcap version 1.8.1 ...

  7. Linux 下vim命令详解

    原博文:https://www.cnblogs.com/zknublx/p/6058679.html 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx   ...

  8. smbfs

    Hi I tried to mount a network share (smbfs) but it complains about the lack of kernel support. To so ...

  9. struct:二进制数据结构的打包与解包

    介绍 struct模块包括一些函数,这些函数可以完成字节串与原生Python数据类型(如数字和字符串)之间的转换 函数与Struct类 struct提供了一组处理结构值的模块级函数,另外还有一个Str ...

  10. python面向编程:面向对象、init、绑定方法、案例练习

    一.类的定义 二.面向对象概念三.对象的使用四.__init__函数的使用五.绑定方法六.面向对象联系 一.类的定义 1.什么叫做类? 类就是分类,类型的意思,一堆具备相同特征和行为的事物的抽象概念 ...