猜谜游戏逻辑存在问题-Java客户端-服务器

hdraven

我有一个猜谜游戏。它分为两个部分。服务器和客户端。这两个类都包含在这篇文章中。逻辑检查用户输入是否在一定范围内。如果检查成功,则将用户输入与逻辑猜测进行比较。逻辑必须自己循环,让用户尝试更多的“回合”。

我唯一的问题是该代码退出逻辑循环,并且没有第二次进行迭代,依此类推。

这是我的服务器代码:

 public class ServerNum     {
    public static void main(String[] args) throws IOException     {
        adivinarNum juego = new adivinarNum();
        ServerSocket socket = null;
        Socket client = null;
        String resultado;
        boolean correcto = false;
        int intentos;
        
                try     {
                    socket = new ServerSocket(1234);
                }     catch(IOException ioe)     {
                    System.err.println(ioe);
                    return;     }
                    System.out.println("El servidor sigue funcionando...");
                    client = socket.accept();
                    System.out.println("El cliente se ha conectado");
                    DataInputStream in = new DataInputStream(new BufferedInputStream(client.getInputStream()));
                    DataOutputStream out = new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));
        while(!correcto)     {
                intentos = in.readInt();
                resultado = juego.adivinar(intentos);
                correcto = juego.getCorrecto();
                out.writeUTF(resultado);
                out.writeBoolean(correcto);
                out.flush();
            if(correcto == false){
                client = socket.accept();
                intentos = in.readInt();
                resultado = juego.adivinar(intentos);
                correcto = juego.getCorrecto();
                out.writeUTF(resultado);
                out.writeBoolean(correcto);
                out.flush();
              }     else     {
                client.close();
                socket.close();     }     }     }     }

客户代码:

        public class ClientNum     {
         public static void main(String[] args) throws IOException     {
            System.out.println("This is Number Guessing Game. \nChoose any number between 1 to 1000 : ");
           Scanner keyboard = new Scanner(System.in);
           int attempt = 0;
           try     {
             attempt = keyboard.nextInt();
             if(attempt < 1 || attempt > 999)     {
               System.out.println("Your number is too large/small, please make a guess between 1 to 1000");
               attempt = keyboard.nextInt();     }     }
        catch(NumberFormatException nfe)     {
          System.out.println("Just choose numbers! Try again");
          attempt = keyboard.nextInt();     }
        try     {
                    Socket server = new Socket("localhost", 1234);
                    System.out.println("Connecting...");
        
                    DataOutputStream out = new DataOutputStream(new BufferedOutputStream(server.getOutputStream()));
                    DataInputStream in = new DataInputStream(new BufferedInputStream(server.getInputStream()));
                        
                    out.writeInt(attempt);
                    out.flush();
                    System.out.println("Our server is still running...");
                    String result = in.readUTF();
                    boolean correct = in.readBoolean();
                    System.out.println(result);
        
                    while (!correct)     {
                            attempt = keyboard.nextInt();
                            out.writeInt(attempt);
                            out.flush();
                            System.out.println("Our server is still running...");
                            result = in.readUTF();
                            System.out.println(result);
                            correct = in.readBoolean();     }
        
                        server.close();
                        System.out.println("Finish. Thank you");
                        System.exit(0);
        
                }     catch(IOException ioe)     {
                    System.err.println(ioe);     }     }     }

我的错误在哪里?

丰富的皮克林

socket.accept用于接受与客户端的连接。这意味着它用于开始与客户端进行通信,因此,每个连接仅需要调用一次。同样,您的客户端在得到正确答案后立即断开连接,然后到达其main()方法的结尾,这意味着程序在此处结束。

您应该设计程序以建立连接,然后在一个while循环(通常称为“游戏循环” )中玩游戏代码,直到用户不再希望玩游戏为止。当用户不再希望玩游戏时,请结束循环,然后让其关闭与服务器的连接,以使应用程序可以正常关闭。

应当注意,该accept方法具有与之相关的效率开销,因此,如果您不必经常调用方法,则该程序将更高效地运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java服务器-多客户端游戏设计

来自分类Dev

Java客户端/服务器套接字问题

来自分类Dev

客户端上的Java客户端-服务器问题(无System.out)

来自分类Dev

Java中的服务器-客户端2player游戏

来自分类Dev

从Java游戏服务器到客户端的TCP和UDP连接

来自分类Dev

TCP客户端-服务器程序的问题

来自分类Dev

C客户端/服务器问题

来自分类Dev

SignalR客户端-服务器连接问题

来自分类Dev

Unity客户端-服务器基本问题

来自分类Dev

客户端解析服务器问题

来自分类Dev

Java-客户端和服务器通信问题

来自分类Dev

Java中的WebSocket编程:客户端服务器通信问题

来自分类Dev

客户端-服务器-客户端*游戏系统

来自分类Dev

客户端<script>标记内的服务器端经典ASP代码存在问题

来自分类Dev

Android(Java)中MediaRecorder的LocalSocket(Unix域)客户端-服务器数据流问题

来自分类Dev

从客户端将JSON解析回服务器端的JSONObject的问题

来自分类Dev

如何避免在客户端和服务器之间重复业务逻辑?

来自分类Dev

选择在客户端/ API /服务器解决方案中编写逻辑的正确位置

来自分类Dev

Python:使用简单的聊天服务器/客户端进行2人游戏

来自分类Dev

服务器/客户端无法使用Kryonet的Android游戏

来自分类Dev

在客户端服务器游戏中通过网络发送文件

来自分类Dev

网络游戏中的客户端和服务器模型

来自分类Dev

多人问答游戏,服务器不接收来自客户端的信息

来自分类Dev

FTP错误(503错误的命令序列)是客户端问题还是服务器问题的结果

来自分类Dev

Java多客户端服务器程序

来自分类Dev

Java Socket客户端和服务器

来自分类Dev

TCP服务器和客户端Java

来自分类Dev

Java SSL客户端/服务器随机值

来自分类Dev

Java简单服务器客户端程序

Related 相关文章

  1. 1

    Java服务器-多客户端游戏设计

  2. 2

    Java客户端/服务器套接字问题

  3. 3

    客户端上的Java客户端-服务器问题(无System.out)

  4. 4

    Java中的服务器-客户端2player游戏

  5. 5

    从Java游戏服务器到客户端的TCP和UDP连接

  6. 6

    TCP客户端-服务器程序的问题

  7. 7

    C客户端/服务器问题

  8. 8

    SignalR客户端-服务器连接问题

  9. 9

    Unity客户端-服务器基本问题

  10. 10

    客户端解析服务器问题

  11. 11

    Java-客户端和服务器通信问题

  12. 12

    Java中的WebSocket编程:客户端服务器通信问题

  13. 13

    客户端-服务器-客户端*游戏系统

  14. 14

    客户端<script>标记内的服务器端经典ASP代码存在问题

  15. 15

    Android(Java)中MediaRecorder的LocalSocket(Unix域)客户端-服务器数据流问题

  16. 16

    从客户端将JSON解析回服务器端的JSONObject的问题

  17. 17

    如何避免在客户端和服务器之间重复业务逻辑?

  18. 18

    选择在客户端/ API /服务器解决方案中编写逻辑的正确位置

  19. 19

    Python:使用简单的聊天服务器/客户端进行2人游戏

  20. 20

    服务器/客户端无法使用Kryonet的Android游戏

  21. 21

    在客户端服务器游戏中通过网络发送文件

  22. 22

    网络游戏中的客户端和服务器模型

  23. 23

    多人问答游戏,服务器不接收来自客户端的信息

  24. 24

    FTP错误(503错误的命令序列)是客户端问题还是服务器问题的结果

  25. 25

    Java多客户端服务器程序

  26. 26

    Java Socket客户端和服务器

  27. 27

    TCP服务器和客户端Java

  28. 28

    Java SSL客户端/服务器随机值

  29. 29

    Java简单服务器客户端程序

热门标签

归档