📄 servernumber.java
字号:
import java.io.*;
import java.net.*;
public class ServerNumber {
private ServerSocket ser;
private Socket soc;
DataInputStream din;
DataOutputStream dout;
public static final int PORT = 8181;
int random;
int Cint;
private static int count = 4;// 决定用户可以拥有的机会;
String s;
ServerNumber() {
startServer();
compareBigorSmall();
}
void startServer() {
try {
ser = new ServerSocket(8181);
System.out.println("服务器启动……");
soc = ser.accept();
din = new DataInputStream(soc.getInputStream());
dout = new DataOutputStream(soc.getOutputStream());
outMessage("游戏开始,请输入一个整数,以比较大小,范围在0到100之间,可以直接输入exit退出循环;");
random = (int) (Math.random() * 100);
} catch (IOException e) {
e.printStackTrace();
}
}
void outMessage(String s) {
try {
dout.writeUTF(s);
System.out.println("用户"+s);
} catch (IOException e) {
e.printStackTrace();
}
}
void compareBigorSmall() {
System.out.println("标准答案为" + random);
int n = 1;
do {
try {
s = din.readUTF();
System.out.println("第" + n++ + "次接受客户端信息");
if (s.equals("exit")) {
break;
}
if (s.equals("restart")) {
// 判断用户输入是否合法;
System.out.println("用户重新开始了游戏");
outMessage("请重新输入0到100的数字");
count = 4;
continue;
}
if (s.equals("")) {
outMessage("没有任何输入,请重新输入");
continue;
}
try {
Cint = Integer.parseInt(s);
} catch (NumberFormatException e) {
outMessage("输入格式不正确,请重新输入");
continue;
}
if (Cint > 100 || Cint < 0) {
outMessage("输入大小越界,请重新输入");
continue;
}
if (count > 0) { // 合法输入的前提下判断输入次数,最多为count次;
if (Cint > random) {
outMessage("您输入的大了");
System.out.println("用户输入的数字大了");
count--;
} else if (Cint < random) {
outMessage("您输入的小了");
System.out.println("用户输入的数字小了");
count--;
} else {
outMessage("恭喜您答对了");
System.out.println("用户答对了");
}
} else {
outMessage("worning!"
+ "错误次数超过限制,猜数字游戏失败 ,请输入选择exit 退出或者restart 重新开始");
continue;
}
} catch (SocketException e) {
System.out.println("客户端异常中断连接");// 当不经任何命令直接中止客户端程序时提示;
break;
} catch (IOException e) {
e.printStackTrace();
}
} while (!(s.equals("exit")));
exit();
}
void exit() {
try {
din.close();
dout.close();
soc.close();
ser.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ServerNumber();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -