gpt4 book ai didi

java - BufferedReader 从套接字读取

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

我有一个缓冲阅读器,由于某种原因,它不会从我从客户端发送的打印流中读取文本。这是每次 line = in.readline 时失败的点

我也检查过并且服务器已连接。

这是错误

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at Server.ServerListener$getXML.run(ServerListener.java:82)
at java.lang.Thread.run(Thread.java:662)

提前致谢

       BufferedReader in = new BufferedReader(new       InputStreamReader(server.getInputStream()));
//PrintStream out = new PrintStream(server.getOutputStream());
System.out.println("Start");
//read the xml
boolean connected = server.isConnected();
System.out.println("xml: "+ connected);
line = in.readLine();
System.out.println("Postread");
while ((line = in.readLine()) != null) {
System.out.println("while1");
xml = xml + line;
System.out.println("while2");
}`

最佳答案

isConnected() 告诉您您的套接字是否已连接到该连接,而不是该连接是否仍连接到对等方。显然,您根本没有保持连接。 “连接重置”有几个可能的原因:您写入的连接已被另一端关闭(应用程序协议(protocol)错误);另一端中止连接;本地 TCP 堆栈在发送时遇到网络错误并已放弃。第一个最有可能是可疑的。并且不要通过网络使用 PrintStreams/Writers,因为它们会吞掉您需要了解的异常。并且您在第一个 readLine() 调用中丢弃了一行数据:将其删除并将其保留在循环中。

关于java - BufferedReader 从套接字读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680133/

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