亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼運行出現錯誤

SEVER:
package?com.imooc;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.net.ServerSocket;
import?java.net.Socket;
/*
?*?基于TCP的Socket的通信
?*?服務器端
?*/
public?class?Sever?{
?public?static?void?main(String[]?args)?{
??//?TODO?Auto-generated?method?stub
??try?{
???ServerSocket?serversocket=new?ServerSocket(8888);
???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();
???????
??????
??????is.close();
??????isr.close();
??????br.close();
??????os.close();
??????pw.close();????
??????serversocket.close();
??????socket.close();
??????
???
??}?catch?(IOException?e)?{
???//?TODO?Auto-generated?catch?block
???e.printStackTrace();
??}
?}
}

client:

package?com.imooc;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.net.InetAddress;
import?java.net.Socket;
import?java.net.UnknownHostException;
/*
?*?基于TCP的Socket的通信
?*?客戶端
?*/
public?class?Client?{
?public?static?void?main(String[]?args)?{
??//?TODO?Auto-generated?method?stub
??try?{
???InetAddress?address=InetAddress.getLocalHost();
???Socket?socket=new?Socket(address.getHostAddress(),8888);
???OutputStream?os=socket.getOutputStream();//輸出流
???PrintWriter?pw=new?PrintWriter(os);//將輸出流轉換為打印流
???pw.write("用戶名:可心;密碼是:1234");
??????pw.flush();
???socket.shutdownOutput();//關閉輸出流
???
???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();
???
???
???os.close();
???pw.close();
???is.close();
???isr.close();
???br.close();???
???socket.close();
???
??}?catch?(UnknownHostException?e)?{
???//?TODO?Auto-generated?catch?block
???e.printStackTrace();
??}?catch?(IOException?e)?{
???//?TODO?Auto-generated?catch?block
???e.printStackTrace();
??}
??
?}
}

?運行結果

?

正在回答

3 回答

? InetAddress?address=InetAddress.getLocalHost();

???Socket?socket=new?Socket(address.getHostAddress(),8888);

8888前面可以直接填寫“localhost”的


0 回復 有任何疑惑可以回復我~
#1

慕粉3170877 提問者

我知道原因了,出現的異常是BindException,表示這些錯誤通常發生在端口正在使用中或無法分配所請求的本地地址時。所以我改了端口號為9999后,就運行正確了,說明了8888這個端口正在使用。
2016-09-08 回復 有任何疑惑可以回復我~
#2

慕粉3170877 提問者

非常感謝!我最終找到原因了
2016-09-08 回復 有任何疑惑可以回復我~
java.net.BindException:?Address?already?in?use:?JVM_Bind

?at?java.net.DualStackPlainSocketImpl.bind0(Native?Method)

?at?java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)

?at?java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)

?at?java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)

?at?java.net.ServerSocket.bind(ServerSocket.java:375)

?at?java.net.ServerSocket.<init>(ServerSocket.java:237)

?at?java.net.ServerSocket.<init>(ServerSocket.java:128)

?at?com.imooc.Sever.main(Sever.java:22)

0 回復 有任何疑惑可以回復我~

改了,也出現同樣的錯誤!運行結果是:

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

代碼運行出現錯誤

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號