我按照視頻中一模一樣打的代碼為什么服務器端運行了,客戶端運行時什么東西都沒有輸出
客戶端代碼
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.Socket;
import java.net.UnknownHostException;
import javax.imageio.stream.ImageInputStream;
public class Cilent {
?public static void main(String[] args) {
??//1.創(chuàng)建客戶端SOcket,指定服務器額端口
??try {
???Socket socket=new Socket("localhost",8888);
???//2/獲取輸出流,向服務器發(fā)送信息
??OutputStream os=socket.getOutputStream();
??PrintWriter pw=new PrintWriter(os);
??pw.write("用戶名:admin;密碼:123");
??pw.flush();
??socket.shutdownOutput();
??//3.獲取輸入流
??InputStream ins=socket.getInputStream();
??BufferedReader br=new BufferedReader(new InputStreamReader(ins));
??String info=null ;
??while((info=br.readLine())!=null){
???System.out.println("我是客戶端,服務器說:"+info);
???info=br.readLine();
??}
??//3.關(guān)閉資源
??br.close();
??ins.close();
??pw.close();
??os.close();
??socket.close();
??} catch (UnknownHostException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??} catch (IOException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??}
?}
}
客戶端的報錯
java.net.ConnectException: Connection refused: connect
?at java.net.DualStackPlainSocketImpl.connect0(Native Method)
?at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
?at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
?at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
?at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
?at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
?at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
?at java.net.Socket.connect(Socket.java:589)
?at java.net.Socket.connect(Socket.java:538)
?at java.net.Socket.<init>(Socket.java:434)
?at java.net.Socket.<init>(Socket.java:211)
?at Socket.Cilent.main(Cilent.java:19)
服務端的代碼
package Socket;
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協(xié)議的端
?*/
public class Sever {
public static void main(String[] args){
?//1.創(chuàng)建一個服務器
?try {
??ServerSocket scoket1=new ServerSocket(8888);
??//2.調(diào)用accept方法
??System.out.println("服務器即將啟動,等待客戶端的鏈接***");
??Socket socket=scoket1.accept();
??//3.獲取輸入流,獲取登錄信息
??InputStream is=socket.getInputStream();
??InputStreamReader? isr=new InputStreamReader(is);
??BufferedReader br=new BufferedReader(isr);
??String info=null ;
??System.out.println("開始連接");
??while((info=br.readLine())!=null){
???System.out.println("我服務器,客戶端說:"+info);
???info=br.readLine();
??}
??socket.shutdownInput();
??//4.獲取輸出流
??OutputStream os=socket.getOutputStream();
??PrintWriter pw=new PrintWriter(os);
??pw.write("歡迎你!");
??pw.flush();
??//5.關(guān)閉資源
??pw.close();
??os.close();
??isr.close();
??is.close();
??br.close();
??socket.close();
??scoket1.close();
?} catch (IOException e) {
??// TODO Auto-generated catch block
??e.printStackTrace();
?}
?
} ?
}
運行結(jié)果:
服務器即將啟動,等待客戶端的鏈接***
開始連接
我服務器,客戶端說:用戶名:admin;密碼:123
2016-08-15
復制你的代碼,沒有發(fā)現(xiàn)問題
2016-09-01
我自己找到了,沒有切換結(jié)果
2016-08-30
我的也是,沒有服務端發(fā)送給客戶端的信息