百度首页 | 百度空间
 
查看文章
 
JAVA-数据流应用(网络版猜数字)
2007年11月19日 星期一 18:03

服务器端原代码:

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


类别:java-j2me编程 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu