JAVA之IO學習(一)

字符流

字節流 

 

socket和serverSocker 

package main.java.com.founder.study.javaio.socket;

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

/**
 * Created  on 2020/6/23.
 */
public class Server {
    public static void main(String[] args)  {
        final  int DEFAULT_PORT = 8888;
        ServerSocket serverSocket = null;
        final String QUIT = "quit" ;
        try {
            serverSocket = new ServerSocket(DEFAULT_PORT);
            System.out.println("服務器開始啓動默認監聽端口"+DEFAULT_PORT);

            while(true){
                //這裏會發生阻塞等待客戶端連接
                Socket accept = serverSocket.accept();
                System.out.println("客戶端"+accept.getPort()+"已經連接");
                OutputStream os = accept.getOutputStream();
                InputStream is = accept.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
                String clientMsg = null;
                while ((clientMsg = br.readLine()) != null){
                    //先收到客戶端
                    System.out.println("收到客戶端的消息:"+clientMsg);
                    //再發送給客戶端
                    bw.write("hello 我是服務端\n");
                    bw.flush();

                    if(QUIT.equals(clientMsg)){
                        break;
                    }
                }

            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                
                serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
package main.java.com.founder.study.javaio.socket;


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

/**
 * Created on 2020/6/23.
 */
public  class Client {

    public static void main(String[] args) {
        final String QUIT = "quit" ;
        final  String DEFAULT_SERVER_HOST = "127.0.0.1";
        final  int DEFAULT_PORT = 8888;
        Socket socket = null;
        BufferedWriter bw =null;
        try {
            socket = new Socket(DEFAULT_SERVER_HOST,DEFAULT_PORT);
            System.out.println("客戶端開始啓動默認端口"+DEFAULT_PORT);
            OutputStream os = socket.getOutputStream();
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            bw= new BufferedWriter(new OutputStreamWriter(os));
            BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
            while (true){

                //先發給服務端
                bw.write(consoleReader.readLine()+"\n");
                bw.flush();
                //我還想再收
                String serverMsg = br.readLine();
                System.out.println("收到服務端的消息"+serverMsg);

                if(QUIT.equals(consoleReader.readLine())){
                    System.out.println("客戶端斷開連接");
                    break;
                }
            }


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

            }

        }
    }


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章