0

所以我正在尝试建立一个客户端 <-> 服务器连接。我不断收到最烦人的错误,因为客户端和服务器无法连接,但在我打电话时只发送一次“cpc”

print("cpc");

这是我正在使用的代码。这包含在扩展 Thread 的类中。

BufferedReader in = null;
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine, outputLine;
print("cpc");
try{
    while ((inputLine = in.readLine()) != null) {
        outputLine = process(inputLine);
        if (!outputLine.equals("")){
            print(outputLine);
        }

    }
} catch (Exception e){
    e.printStackTrace();
}

错误出现在 'while ((inputLine = in.readLine()) != null) {' 的位置。

如果您需要它,这是错误。

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at javaclient.Client.run(Client.java:28)

这是 print() 代码

public void print(String s){
    out.println(s);
}
4

1 回答 1

0

您正在阅读线路,但您没有发送线路。尝试使用 println() 而不是 print()。 “连接重置”的最常见原因是您已写入已被对等方关闭的连接。您通常不是在该写入时获得它,而是在随后的读取或写入时获得它。基本上这是一个应用程序协议错误。

于 2012-12-09T19:52:40.503 回答