gpt4 book ai didi

java - 卡在 socket.accept()

转载 作者:行者123 更新时间:2023-11-29 07:04:38 25 4
gpt4 key购买 nike

您好,我刚刚开始学习 Java Enterprise Edition 类(class)。这是我第一次接触 Java 编程的这一面,所以这对我来说都是全新的。我正在阅读我的教科书,并决定输入给我的代码之一来尝试一下。这段代码不是我的。该程序应输出“你好,输入 BYE 退出”,然后回显在提示符中键入的任何内容。由于某种原因,代码在包含 s.accept 的 try block 处挂起(它输出 1 然后 2 然后挂起)。我只是想知道当我从我的教科书中完全复制它时,是否有人会知道为什么这对我不起作用。这是代码:

import java.io.*;
import java.net.*;
import java.util.*;

public class EchoServer
{
public static void main (String[] args) throws IOException
{
System.out.println("1");
try (ServerSocket s = new ServerSocket(8189))
{
System.out.println("2");
try(Socket incoming = s.accept())
{
System.out.println("3");
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();

try(Scanner in = new Scanner(inStream))
{
PrintWriter out = new PrintWriter(outStream,true);
out.println("Hello! Enter BYE to exit.");
boolean done = false;

while(!done && in.hasNextLine())
{

String line = in.nextLine();
out.println("Echo: " + line);
if(line.trim().equals("BYE"))
done = true;
}
}
}

}
}
}

我确定这是一个相对容易解释的东西,我只是新手,想知道为什么当我尝试运行它时它不起作用。

最佳答案

课本上有对应的EchoClientdemo吗?

Socket.accept() 按照设计挂起,直到客户端连接到正在等待的端口,在本例中为端口 8189。您的程序运行良好

关于java - 卡在 socket.accept(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247832/

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