【发布时间】:2020-04-05 14:24:46
【问题描述】:
我一直在关注如何使用 Java 构建简单的聊天应用程序的教程。我了解了服务器和客户端如何通信的基本原理。到目前为止,我使用 PrintWriter 发送,使用 BufferedReader 接收双方的信息。但我不明白这怎么不会导致错误?
Socket soc = new Socket(ipAddress, port);
BufferedReader in = new BufferedReader( new InputStreamReader(soc.getInputStream));
while(true) {
String str = in.readLine();
}
我的问题如下。 in.readLine() 语句是否“等待”输入?如果没有,如果使用str,程序不应该抛出错误,因为它没有价值吗?或者笼统地说,像Socket soc = serverSocket.accept(); 这样的套接字特定功能还是在上面给出的示例中读取输入流“等待”信号?我错过了一些关于套接字的基本概念吗?如果有人能帮助我进一步理解这个话题,那就太好了。
提前谢谢你,
应用
【问题讨论】:
-
我并不是要劝阻你放弃当前的任务——但是——在你完成当前教程之后,我建议使用 Java 的 NIO 库。在我的工作地点,我们即将为用 Java 完成的旧 API/服务发布一些新的实时事件……在过去的两周里,我们从您正在使用的套接字/套接字服务器切换到“较新”的 NIO 套接字通道等。 crunchify.com/…
-
感谢您的建议,我对这个主题还很陌生,一定会进一步研究。