請求老師幫忙看一下錯誤:
try {
//1.創建客戶端Socket,指定服務器地址和端口
Socket socket=new Socket("localhost", 1280);
//2.獲取輸出流,向服務器端發送信息
OutputStream os=socket.getOutputStream();//字節輸出流
PrintWriter pw=new PrintWriter(os);//將輸出流包裝為打印流
pw.write("用戶名:alice;密碼:789");
pw.flush();
// socket.shutdownOutput();//關閉輸出流
//3.獲取輸入流,并讀取服務器端的響應信息
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String info=null;
while((info=br.readLine())!=null){
System.out.println("我是客戶端,服務器說:"+info);
}
//4.關閉資源
br.close();
is.close();
pw.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.socket.Client.main(Client.java:49)
2016-07-01
檢查完代碼才在最后發現有報錯信息..
首先,代碼看了一遍,應該是沒有錯誤。
然后是報錯信息,我分析有兩種可能:
沒有先啟動服務端
多次啟動/停止過于頻繁,JVM沒來得及解除端口占用
再說對應的解決方法
先啟動服務端再啟動客戶端
有三種方案
①關閉連接時線關閉服務端②每次啟動更換端口③多次啟動/停止之間留下一定空閑
2016-06-28
啟動了,我現在改好了
2016-06-21
是不是你沒有先啟動服務器?或者你的服務器啟動沒有成功。