====================客戶端=========================
/*
* 客戶端與服務(wù)端互動
* 說明:
* 1.使用的BufferedReader的readLine()方法要加上\r\n才能把數(shù)據(jù)輸入;
* 2. 使用字符流一定要使用flush()才能把數(shù)據(jù)寫出;
*/
package com.lin.michael;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException{
//1.建立客戶端TCP服務(wù),指定與此通信的服務(wù)器的IP和port
Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
//2.獲取Socket對象的輸出流,并且使用轉(zhuǎn)換流轉(zhuǎn)化成字符輸出流
OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
//3. 從鍵盤的輸入流讀取數(shù)據(jù)
BufferedReader? keyReader = new BufferedReader(new InputStreamReader(System.in));
//從服務(wù)端讀取回送數(shù)據(jù),獲取Socket的輸入流對象
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//4.寫出數(shù)據(jù)
String line = null;
while((line=keyReader.readLine())!=null){
socketOut.write(line+"\r\n");
socketOut.flush();
System.out.println("服務(wù)端回送的數(shù)據(jù)是:" + socketReader.readLine());
}
//5.關(guān)閉資源
socket.close();
}
}
=====================服務(wù)端===============================
package com.lin.michael;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException{
//1.創(chuàng)建服務(wù)端tcp服務(wù),堅挺端口
ServerSocket serverSocket = new ServerSocket(9090);
//2.接受服務(wù)端的連接并產(chǎn)生一個socket
Socket socket = serverSocket.accept();
//3.獲取socket的輸入流對象,并轉(zhuǎn)換成字符輸入流
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//獲取socket的輸出流對象
OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream());
//讀取從鍵盤輸入
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
//4.讀取客戶端的數(shù)據(jù)
String line = null;
while((line=socketReader.readLine())!=null){
System.out.println("服務(wù)端接收到的資源:" + line);
System.out.println("輸入個客戶端的數(shù)據(jù):");
socketOut.write(keyReader.readLine()+"\r\n");
socketOut.flush();
}
serverSocket.close();
}
}