• 教材代码完成情况测试P402(ch13课上测试)


    一、任务要求

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

    二、源代码

    • 添加的内容
      添加的问题:"提交本次测试的时间是几月几号?"
      添加的回答:"提交本次测试的时间是2019年5月13日"

    • Client.java

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

    三、运行截图

    • 1.问题1

      • 问题:

      • 回答:

    • 2.问题2

      • 问题:

      • 回答:

    • 3.问题3

      • 问题:

      • 回答:

    • 4.问题4

      • 问题:

      • 答案:

    SP.码云链接

  • 相关阅读:
    Nginx解决跨域
    子网掩码的作用
    并发与并行
    Java8 parallelStream与迭代器Iterator性能
    Spring Data MongDB空间索引(判断一个点Point是否在一个区域Polygon内)
    BeanFactory的实现原理
    序列化以及反序列化
    MongoDB用户名和密码
    Cannot assign to 'self' outside of a method in the init family
    OC方法和文件编译
  • 原文地址:https://www.cnblogs.com/jxxydwt1999/p/10856394.html
Copyright © 2020-2023  润新知