java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at com.qq.view.TestServer.<init>(TestServer.java:25)
at com.qq.view.TestServer.main(TestServer.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
在写java服务器端时出现上述错误(在客服端去链接服务端的时候),发现是
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
需要换成
PrintWriter printWriter = new PrintWriter(socket.getOutputStream(),true);
package com.qq.view;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
/**
* Created by lijun on 2016/12/27.
*/
public class TestClient {
public static void main(String a[]){
TestClient testClient = new TestClient();
}
public TestClient(){
try {
Socket socket = new Socket("127.0.0.1",9999);
// OutputStreamWriter outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
// BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
// bufferedWriter.
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
printWriter.println("hello");
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.qq.view;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Created by lijun on 2016/12/27.
*/
public class TestServer {
public static void main(String a[]){
TestServer testClient = new TestServer();
}
public TestServer(){
try {
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("--------在9999监听-------");
Socket socket = serverSocket.accept();
InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String info = bufferedReader.readLine();
System.out.println(info);
} catch (IOException e) {
e.printStackTrace();
}
}
}
既是需要自动刷新才能发送到服务器端。
如果客服端链接后不发送消息,服务器端报同样的异常。