服務端:
public class Server {
public static void main(String [ ] args){
try {
//1、建立服務端
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("-------服務器等待客戶端鏈接--------");
//2、啟動服務端
Socket socket = serverSocket.accept();
System.out.println("客戶端"+ socket.getInetAddress().getHostAddress()+"鏈接成功");
//3、獲取輸入流,讀取客戶端信息
InputStream inputStream = socket.getInputStream();//獲取輸入流
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);//將字節流轉換字符流
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);//為字符流建立緩沖區
String line = null;
while ((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
socket.shutdownInput();
//4、獲取輸出流,響應客戶端
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.write("歡迎你!");
printWriter.flush();
socket.shutdownOutput();
//5、關閉相關資源
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客戶端
public class Client {
public static void main(String [] args){
try {
//1、創建客戶端socket,指定服務器地址和端口號
Socket socket = new Socket("localhost",8888);
//2、獲取輸出流,向服務器發送信息
OutputStream outputStream = socket.getOutputStream();//字節流
PrintWriter printWriter = new PrintWriter(outputStream);//將字節流包裝為打印流
printWriter.write("用戶名:123; 密碼:123");
printWriter.flush();
socket.shutdownOutput();
//3、獲取輸入流,讀取客戶端響應的消息
InputStream inputStream = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = null;
while((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
socket.shutdownInput();
//4、關閉資源
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}