java - Java Socket BufferedReader Null
问题描述
public static void main(String[] args) throws IOException {
String hostName = "127.0.0.1";
int portNumber = 4848;
Socket echoSocket = new Socket(hostName, portNumber);
PrintWriter out = new PrintWriter(echoSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
}
它应该通过将其发送到套接字并再次从套接字中获取来回显您所写的内容。发生的情况是,当我输入某些内容并按 Enter 时,大约需要 10 秒,然后才说echo: null
。
预期的
输入
测试
输出
回声:测试
现实
输入
测试
输出
回声:空
我的问题是:
- 我在做什么菜鸟错误?
我如何解决它?
评论前阅读
我需要测试套接字的功能。通过做这样简单的事情,它可以帮助我理解如何使用它们。我想创建一个实时聊天服务器。但是,如果这个简单的程序不起作用,我就不能。我没有愚蠢到不使用 userInput。我知道。
解决方案
InputStream
问题是我正在访问OutputStream
同一.echoSocket
Thread
推荐阅读
- javascript - 发送图像时的PHP cors问题
- python - 当两个值都是字符串时,为什么我的 df.replace 不起作用?无法比较类型 'ndarray(dtype=object)' 和 'str'
- angular-cli - 如何从外部原理图中调用 ng add
- python - 将绘图值保存到 .dat 文件
- php - php中的数据库查询失败
- ruby - Kotlin's With,用于红宝石
- python - 为什么 mpld3 条形图显示一个 python 文件的“版本”,而不是另一个?
- c# - 通过 html 敏捷包从 wiki 获取数据
- c# - C#:按类型、年、月对付款进行分组/子分组
- vb.net - 如何在另一个 Sub 中使用一个变量?