gpt4 book ai didi

java - 为什么我的休息时间没有回到我的厂牌上?

转载 作者:行者123 更新时间:2023-12-02 13:24:51 24 4
gpt4 key购买 nike

因此,对于学校,我正在尝试制作一个包含 2 个类的异步聊天程序;服务器和客户端。基本上,客户端连接到服务器,并写入文本,直到输入字符串或。如果输入,则客户端监听文本,服务器开始发送。如果输入,则客户端断开连接,服务器重置连接并等待客户端再次连接。我试图用一些 do..while 来解决这些要求,然后使用 continue 标签来重置连接。现在,如果客户端发送连接重置,但服务器只是停止构建而不是返回到我的 startConnections 标签。这是我正在使用中断的服务器的代码:

 public static void main(String args[]) {

startConnections:
{
System.out.println("RESET TEST");

try {
server = new ServerSocket(12345, 100);


System.out.println("Waiting for client");
connection = server.accept();
System.out.println("Client Connected");

output = new ObjectOutputStream(connection.getOutputStream());

output.flush();

input = new ObjectInputStream(connection.getInputStream());

do {

do {
messageIn = (String) input.readObject();

System.out.println("CLIENT SAYS: " + messageIn);
} while ((!messageIn.equals("<OVER>")) & (!messageIn.equals("<OUT>")));
if (messageIn.equals("<OUT>")) {
break startConnections;
}

do {
System.out.print("RESPONSE: ");

keyboardInput = new Scanner(System.in);
messageOut = keyboardInput.nextLine();

output.writeObject(messageOut);

} while (!messageOut.equals("<OVER>"));

} while (!messageOut.equals("<OUT>"));

} catch (Exception e) {
System.out.println("Oops SERVER! : " + e.toString());
}

}
}

最佳答案

它有效 as it should

The break statement terminates the labeled statement; it does not transfer the flow of control to the label. Control flow is transferred to the statement immediately following the labeled (terminated) statement.

因此,在 break 调用之后执行的下一个语句是在标有 startConnections 的循环之后出现的语句

要获得您想要的行为,您需要使用继续:

continue startConnections;

A labeled continue statement skips the current iteration of an outer loop marked with the given label.

关于java - 为什么我的休息时间没有回到我的厂牌上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43431401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com