客戶端
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;
public?class?Client?{
public?static?void?main(String[]?args)?{
try?{
//?創建客服端Scoket,指定服務器地址和端口
Socket?socket?=?new?Socket("192.168.1.67",?8787);//?localhost表示本地地址
//?獲取輸出流,想服務器端發送信息
OutputStream?outputStream?=?socket.getOutputStream();//?字節流輸出
PrintWriter?printWriter?=?new?PrintWriter(outputStream);//?將字節流轉換成(包裝為)打印流
printWriter.write("用戶名:admin\t密碼:123123");
printWriter.flush();//?調用flush()刷新緩存
socket.shutdownInput();//?關閉輸出流
//獲取輸入流,并讀取服務器端的響應信息
InputStream?inputStream=socket.getInputStream();
InputStreamReader?inputStreamReader=new?InputStreamReader(inputStream);
BufferedReader?bufferedReader=new?BufferedReader(inputStreamReader);
String?data=bufferedReader.readLine();
if?(data!=null)?{
System.out.println("我是客服端:服務器說"+data);
}
//?關閉資源
inputStreamReader.close();
bufferedReader.close();
inputStream.close();
outputStream.close();
printWriter.close();
}?catch?(UnknownHostException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
服務器
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;
public?class?Server?{
public?static?void?main(String[]?args)?{
try?{
//?創建一個服務器端的Socket,即ServerSocket。指定綁定端口,并監聽
ServerSocket?serverSocket?=?new?ServerSocket(8787);
System.out.println("*********服務器即將啟動,等待客戶端連接********");
//?調用accept()開始監聽,等待客戶端連接。
Socket?socket?=?serverSocket.accept();
//?獲取輸入流,并讀取客戶端信息。
InputStream?inputStream?=?socket.getInputStream();//?字節流輸入
InputStreamReader?inputStreamReader?=?new?InputStreamReader(inputStream);//?將字節流轉化為字符流
BufferedReader?bufferedReader?=?new?BufferedReader(inputStreamReader);//?為輸入流添加緩沖
String?data?=?null;
while?((data?=?bufferedReader.readLine())?!=?null)?{
System.out.println("我是服務器:客服端說:"?+?data);
//?data?=?bufferedReader.readLine();
}?//?循環讀出客戶端的信息
//?獲取輸出流,響應客戶端請求
OutputStream?outputStream?=?socket.getOutputStream();
PrintWriter?printWriter?=?new?PrintWriter(outputStream);//?包裝為打印流
printWriter.write("歡迎您");
printWriter.flush();//?調用flush()將緩存輸出
//?關閉相關的資源
socket.shutdownInput();//?關閉輸入流
printWriter.close();
outputStream.close();
inputStream.close();
inputStreamReader.close();
bufferedReader.close();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
錯誤
*********服務器即將啟動,等待客戶端連接********
java.net.SocketException:?Connection?reset
at?java.net.SocketInputStream.read(Unknown?Source)
at?java.net.SocketInputStream.read(Unknown?Source)
at?sun.nio.cs.StreamDecoder.readBytes(Unknown?Source)
at?sun.nio.cs.StreamDecoder.implRead(Unknown?Source)
at?sun.nio.cs.StreamDecoder.read(Unknown?Source)
at?java.io.InputStreamReader.read(Unknown?Source)
at?java.io.BufferedReader.fill(Unknown?Source)
at?java.io.BufferedReader.readLine(Unknown?Source)
at?java.io.BufferedReader.readLine(Unknown?Source)
at?Server.main(Server.java:24)
添加回答
舉報
0/150
提交
取消