zoukankan      html  css  js  c++  java
  • 教材代码完成情况测试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.码云链接

  • 相关阅读:
    comparator接口与Comparable接口的区别
    heap和stack有什么区别
    聚集索引和非聚集索引(整理)
    SQL里的EXISTS与in、not exists与not in
    SQL中CONVERT转化函数的用法
    GCC 对C语言的扩展
    C++宏定义详解
    How to Find Processlist Thread id in gdb !!!!!GDB 使用
    Netdata----Linux 性能实时监测工具
    java开发C语言编译器
  • 原文地址:https://www.cnblogs.com/jxxydwt1999/p/10856394.html
Copyright © 2011-2022 走看看