Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 除了hasNext之外,我应该使用什么来检查inputStream? while(true){ for(int i=0;i_Java_Sockets - Fatal编程技术网

Java 除了hasNext之外,我应该使用什么来检查inputStream? while(true){ for(int i=0;i

Java 除了hasNext之外,我应该使用什么来检查inputStream? while(true){ for(int i=0;i,java,sockets,Java,Sockets,我正在实现一个套接字游戏。两个玩家正在玩,我正在使用无限while循环检查玩家是否输入了内容。问题是,在我检查之后,如果没有输入,Scanner类的hasNext()将冻结。如果每个玩家每回合获得2次机会,则第一个玩家使用第一次机会,If语句恰好检查第二个玩家的输出流。但是由于第二个玩家没有输入任何内容,hasNext()冻结在那里,第一个玩家不能做任何事情 除了hasNext(),我应该做什么或使用什么 我现在正在使用线程来完成这项工作,但我仍然在等待一个与线程无关的答案:)您将等待很长时间。

我正在实现一个套接字游戏。两个玩家正在玩,我正在使用无限while循环检查玩家是否输入了内容。问题是,在我检查之后,如果没有输入,Scanner类的hasNext()将冻结。如果每个玩家每回合获得2次机会,则第一个玩家使用第一次机会,If语句恰好检查第二个玩家的输出流。但是由于第二个玩家没有输入任何内容,hasNext()冻结在那里,第一个玩家不能做任何事情

除了hasNext(),我应该做什么或使用什么

我现在正在使用线程来完成这项工作,但我仍然在等待一个与线程无关的答案:)您将等待很长时间。这就是答案,除非您想深入研究NIO或异步套接字。
while(true) {
        for(int i = 0; i < numPlayers; i++) {
            System.out.println(i + " time");
            if(fromPlayer.get(i).hasNext()) {
                String command = fromPlayer.get(i).next();
                System.out.println("I Got " + command);
                executeCommand(command, i);

            }
            System.out.println("I got here.");
        }
    }