java.net.SocketException: Connection reset
public?class?Server?{ ?public?static?void?main(String[]?args)?{ ??try?{ ???//???創(chuàng)建一個服務端socket ???ServerSocket?serverSocket?=?new?ServerSocket(8888); ???//調(diào)用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(); ???//關(guān)閉資源 ???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?{ ???//創(chuàng)建客戶端 ???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); ???} ???//關(guān)閉資源 ???br.close(); ???is.close(); ???pw.close(); ???os.close(); ???socket.close(); ??}?catch?(UnknownHostException?e)?{ ???e.printStackTrace(); ??}?catch?(IOException?e)?{ ???e.printStackTrace(); ??} ?} }
?
2015-12-16
寫錯了 ?是不用關(guān)閉輸入輸出流 直接關(guān)閉SOCKET就可以
2015-12-16
還有,不用關(guān)閉輸出流,在關(guān)閉socket的時候就會關(guān)閉輸出流
2015-12-16
那些輸入輸出流 還有socket的關(guān)閉的順序要對。先開的最后關(guān),最后開的最先關(guān)!
2015-12-16
在連接斷開之后,在進行讀寫,導致該異常