知识大全 Java多线程Socket操作猜数游戏样例

Posted

篇首语:人生处万类,知识最为贤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java多线程Socket操作猜数游戏样例相关的知识,希望对你有一定的参考价值。

Java多线程Socket操作猜数游戏样例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   服务器端程序 接受连接并处理客户端的请求  ServerApp java    package test;    import java io *;    import *;    /** *//**     * 服务器端程序     *     * @author luxuan 修正赵学庆      *     */    public class ServerApp       static final int PORT = ;      private ServerSocket serverSocket;      private Socket socket;      private BufferedReader netIn;      private PrintWriter netOut;      public ServerApp() throws IOException         serverSocket = new ServerSocket(PORT);        System out println( server start );        while (true)           // 等待连接          socket = serverSocket accept();          ServerThread st = new ServerThread(socket);          new Thread(st) start();                    class ServerThread implements Runnable         private Socket socket;        private int randomNumber;        private int clientGuessNumber;        public ServerThread(Socket s) throws IOException           socket = s;          netIn = new BufferedReader(new InputStreamReader(socket getInputStream()));          netOut = new PrintWriter(socket getOutputStream());                public void run()           System out println( client + socket getInetAddress() + is connect );          randomNumber = (int) (Math random() * );          System out println( random number is: + randomNumber);          try             clientGuessNumber = Integer parseInt(netIn readLine());            System out println( client guess number is: + clientGuessNumber);            for (int i = ; i > ; i )               if (clientGuessNumber == randomNumber)                 netOut println( OK 恭喜 猜对了 );                ClientApp finished = true;              else if (clientGuessNumber < randomNumber)                 netOut println( 您猜的数小了 您还有 + (i ) + 次机会 );                ClientApp finished = false;              else if (clientGuessNumber > randomNumber)                 netOut println( 您猜的数大了 您还有 + (i ) + 次机会 );                ClientApp finished = false;                            netOut flush();              if (!ClientApp finished)                 clientGuessNumber = Integer parseInt(netIn readLine());              else                 break;                                      if (!ClientApp finished)               netOut println( OK 您没有机会了 游戏结束 );                        ClientApp finished = true;          catch (IOException e)           finally             try               netOut close();              netIn close();              socket close();            catch (IOException ee)                                           public static void main(String[] args) throws IOException         new ServerApp();              客户端程序 发送每次猜的数字    package test;    import java io *;    import *;    public class ClientApp       private Socket socket;      private BufferedReader netIn;      private PrintWriter netOut;      private BufferedReader keyboardIn;      static Boolean finished = false;      public ClientApp() throws IOException         System out println( 请输入服务器地址 连接本地服务器请输入localhost );        keyboardIn = new BufferedReader(new InputStreamReader(System in));        try           if (keyboardIn readLine() equalsIgnoreCase( localhost ))             socket = new Socket(InetAddress getLocalHost() ServerApp PORT);          else             socket = new Socket(InetAddress getByName(keyboardIn readLine()) ServerApp PORT);                    netIn = new BufferedReader(new InputStreamReader(socket getInputStream()));          netOut = new PrintWriter(socket getOutputStream());        catch (UnknownHostException e)           System err println( 连接不到服务器 );          System exit( );                System out println( 连接成功 );        while (!finished)           System out println( 请输入 - 之间的数字 );          netOut println(keyboardIn readLine());          netOut flush();          String str = netIn readLine();          if (str == null)             finished = true;            break;                    System out println(str);          if (str startsWith( OK ))             finished = true;            break;                          netIn close();        netOut close();        keyboardIn close();        socket close();            public static void main(String[] args) throws IOException         new ClientApp();                     运行结果

cha138/Article/program/Java/gj/201311/27387

相关参考