ServerSoket/Socket聊天簡單實現V1(單線程,一個客戶端對一個服務器,客戶端單向發送,服務器被動接收)

package communication;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**

  • @author Dylaniou
  • 需要先啓動服務器
    */
    public class Server {
    static ServerSocket serverSocket = null;
    static int port = 18000;
    static Socket socket = null;
    public static void main(String[] args) throws IOException {
    serverSocket = new ServerSocket(port);
    System.out.println(“服務器啓動成功,等待客戶端請求”);
    socket = serverSocket.accept();
    System.out.println(“收到客戶端請求”);
    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String line = null;
    while((line = br.readLine())!=null){
    System.out.println(“客戶端:” + line);
    }
    }
    }

package communication;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/**

  • @author Dylaniou
  • 需要先啓動服務器
    */
    public class Client {
    static Socket socket = null;
    static int port = 18000;
    public static void main(String[] args) throws UnknownHostException, IOException {
    socket = new Socket(“localhost”,port);
    System.out.println(“客戶端成功建立socket連接”);
    //發送命令行消息給服務器
    //將命令行字節輸入流轉換爲字符輸入流,利用緩衝字符輸入流讀取命令行消息
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    //將socket字節輸出流轉換爲字符輸出流,利用緩衝字符輸出流輸出命令行消息
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    String line =null;
    while((line = br.readLine())!=null){
    bw.write(line);
    bw.newLine();//注意:用於終止輸出行,不然命令行輸入再多內容也無法發送出去
    bw.flush();
    System.out.println(“客戶端:” + line);
    }
    }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章