一、任务要求
- 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
-
问题:
-
答案:
-