知识大全 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

相关参考

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

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

知识大全 Java Socket多线程服务端、客户端

JavaSocket多线程服务端、客户端  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //主方

知识大全 Java Socket 编程——多线程网络聊天程序

JavaSocket编程——多线程网络聊天程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用

知识大全 Java Socket多线程如何支持服务器模型

JavaSocket多线程如何支持服务器模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ja

知识大全 socket 线程 思路 java

  网上参考别人的例子改自己的程序终于搞明白了原来在socket的服务器端设置线程并不是像之前想的那样建立一个连接后就重新开一个端口去监听这样的想法遇到了很多问题首先当我把客户端弄成for循环递增的链

知识大全 Java Socket线程的设计原理介绍

JavaSocket线程的设计原理介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaS

知识大全 Java Socket通信技术收发线程互斥的解决方法

JavaSocket通信技术收发线程互斥的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Java多线程操作相关问题总结

Java多线程操作相关问题总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 java关于多线程的部分操作

  一般服务器端代码每次收到一个线程一个client就会产生  /************************开始监听**************************/  intport=; 

知识大全 C# 实现的多线程异步Socket数据包接收器

C#实现的多线程异步Socket数据包接收器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  几天