服务器端原代码:
package GuessNum;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.*;
import java.util.Random;
public class Server {
BufferedReader br1;
ServerSocket ser;
Socket soc ;
BufferedReader br;
PrintWriter pw;
String s,s1;
static int i,n;
Random r;
boolean exit;
public Server() throws IOException {
ser=new ServerSocket(8888);
soc =ser.accept();
br1=new BufferedReader(new InputStreamReader(System.in));
br=new BufferedReader(new InputStreamReader(soc.getInputStream()));
pw=new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));
}
public static void main(String[] args) throws IOException {
System.out.println("等待.....");
System.out.println("0".hashCode());
System.out.println("9".hashCode());
Server net=new Server();
System.out.println("客户连接成功~");
net.shuru();
while (!net.exit) {
try {
net.s1=net.br.readLine();
net.logic();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
void logic() throws IOException{
if(s1.equals("y")){
System.out.println();
System.out.println("用户重新开始!");
pw.println("重新开始");
pw.flush();
shuru();
return;
}else if(s1.equals("n")){
System.out.println("客户退出");
exit=true;
pw.println("程序关闭");
pw.flush();
br.close();
pw.close();
soc.close();
return;
}
if(s1.equals(String.valueOf(i))){
System.out.println("客户猜对了 ");
pw.println("恭喜您第"+n+"次猜对了 ");
n=0;
pw.flush();
pw.println("您是否再玩一次? (y/n)");
pw.flush();
}else if(Integer.parseInt(s1)>i){
System.out.println("客户猜大了 ");
pw.println("您第"+n+"次猜大了 ");
pw.flush();
}else if(Integer.parseInt(s1)<i){
System.out.println("客户猜小了 ");
pw.println("您第"+n+"次猜小了 ");
pw.flush();
}
if(-1<(Integer.parseInt(s1))&(Integer.parseInt(s1)<10))
System.out.println("客户第"+n+"次猜数为: "+s1);
n++;
if(n==6){
n=0;
pw.println("您太聪明了~~~是否在玩一次?y/n ");
pw.flush();
}
pw.println("请输入:");
pw.flush();
}
void shuru() {
n=1;
i=(new Random().nextInt(10));
System.out.println("正确答案为:"+i);
pw.println("网络版猜数字"+"\n"+"您有5次机会去猜系统随机生成的(0-9)"+"\n"+"请输入(0-9)之间的数字!");
pw.flush();
}
}
客户端原代码:
package GuessNum;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client implements Runnable{
//定义程序需要资源
BufferedReader br1;
Socket soc;
BufferedReader br;
PrintWriter pw;
String s,s1;
boolean exit;
Thread t;
//构造函数 初始化
public Client() throws UnknownHostException, IOException {
br1=new BufferedReader(new InputStreamReader(System.in));
soc=new Socket("192.168.1.26",8888);
br=new BufferedReader(new InputStreamReader(soc.getInputStream()));
pw=new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));
t=new Thread(this);
t.start();
}
//程序主体
public static void main(String[] args) throws UnknownHostException, IOException {
Client client =new Client();
client.input();
}
//接受用户输入
void input() throws IOException{
while(!exit){
s=br1.readLine();
if(s.hashCode()>47&s.hashCode()<58|s.equals("n")|s.equals("y")){ //判断用户输入字符是否合法
pw.println(s);
pw.flush();
if(s.equals("n")){
exit=true;
break;
}
}else{
System.out.println("请确认输入(0-9)之间数字!重新开始输入:y 退出:n !");
System.out.println("请输入:");
}
}
}
//用户启动线程体
public void run() {
while (!exit) {
try {
s1=br.readLine();
} catch (IOException e1) {
e1.printStackTrace();
}
if(s1!=null){
System.out.println(s1);
}
}
}
}
原文件下载:GuessNum.rar