1. 程式人生 > >JAVA Socket 程式設計學習

JAVA Socket 程式設計學習

import java.io.*;
import java.net.Socket;

/**
 * 伺服器端執行緒處理類
 * Created by Administrator on 2017/9/28.
 */
public class ServerThread extends Thread {

    //和本執行緒相關的socket
    Socket socket = null;
    public ServerThread(Socket socket) {
        this.socket = socket;
    }
    public void run() {
        //伺服器處理程式碼
        //3、獲取輸入流,並讀取客戶端資訊
        InputStream inputStream = null;
        BufferedReader br = null;
        OutputStream os = null;
        PrintWriter pw = null;
        try {
            inputStream = socket.getInputStream();
            br = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
            String data = null;
            while ((data = br.readLine()) != null) {
                System.out.println("我是伺服器,客戶端說:" + data);
            }

            socket.shutdownInput();//關閉輸入流
            
            //4、獲取輸出流,響應客戶端的請求
            os = socket.getOutputStream();
            pw = new PrintWriter(os);
            pw.write("歡迎你!");
            pw.flush();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //關閉資源
            try {
                if (pw != null) {
                    pw.close();
                }
                if (os != null) {
                    os.close();
                }

                if (br != null) {
                    br.close();
                }
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}