java.net.SocketException: Connection reset
public?class?Server?{
?public?static?void?main(String[]?args)?{
??try?{
???//???創建一個服務端socket
???ServerSocket?serverSocket?=?new?ServerSocket(8888);
???//調用accept方法
???System.out.println("*********服務端即將啟動*****");
???Socket?socket?=?serverSocket.accept();???
???//獲取輸入流,并讀取客戶端信息
???InputStream?is?=socket.getInputStream();
???InputStreamReader?isr?=?new?InputStreamReader(is);
???BufferedReader?br?=?new?BufferedReader(isr);
???String?info?=?null;
???while((info?=?br.readLine())!=null){
????System.out.println("-----服務器端,客戶端:"+info);
???}
???socket.shutdownInput();
???//獲取輸出流
???OutputStream?os=socket.getOutputStream();
???PrintWriter?pw?=?new?PrintWriter(os);
???pw.write("歡迎登陸");
???pw.flush();
??socket.shutdownOutput();
???//關閉資源
???pw.close();
???os.close();???
???br.close();
???isr.close();
???is.close();
???socket.close();
???serverSocket.close();
??}?catch?(IOException?e)?{
???e.printStackTrace();
??}
?}??
}public?class?Client?{
?public?static?void?main(String[]?args)?{
??try?{
???//創建客戶端
???Socket?socket?=?new?Socket("localhost",8888);
???//獲取輸出流
???OutputStream?os=socket.getOutputStream();
???PrintWriter?pw?=?new?PrintWriter(os);
???pw.write("用戶名:admin;密碼:1111");
???pw.flush();
???socket.shutdownOutput();
???//獲取輸入流
???InputStream?is?=socket.getInputStream();
???BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(is));
???String?info?=?null;
???while((info?=?br.readLine())!=null){
????System.out.println("-----客戶端,服務端:"+info);
???}
???//關閉資源
???br.close();
???is.close();
???pw.close();
???os.close();
???socket.close();
??}?catch?(UnknownHostException?e)?{
???e.printStackTrace();
??}?catch?(IOException?e)?{
???e.printStackTrace();
??}
?}
}?
2015-12-16
寫錯了 ?是不用關閉輸入輸出流 直接關閉SOCKET就可以
2015-12-16
還有,不用關閉輸出流,在關閉socket的時候就會關閉輸出流
2015-12-16
那些輸入輸出流 還有socket的關閉的順序要對。先開的最后關,最后開的最先關!
2015-12-16
在連接斷開之后,在進行讀寫,導致該異常