网路编程 -- 01 -- 基础学习

90 阅读1分钟

通信流程:

通信流程:

1.通信双方建立套接字

2.服务端启动套接字,等待客户端连接

3.可客户端发起连接,双方建立通道

4.收发数据

5.关闭资源

public class TalkClient {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("127.0.0.1", 4700);
            //键盘输入
            BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
            //套接字输出流
            PrintStream os = new PrintStream((socket.getOutputStream()));
            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String readline = sin.readLine();
            while(!readline.equals("bye")){
                os.println(readline);
                os.flush();
                System.out.println("Client: " + readline);
                System.out.println("Server: " + is.readLine());
                readline = sin.readLine();
            }
            os.close();
            is.close();
            socket.close();
        } catch (IOException e) {
            System.out.println("Error: " + e);
        }
    }
}
public class TalkServer {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(4700);
        } catch (IOException e) {
            System.out.println("can not listen to: " + e);
        }
        Socket socket = null;
        try {
            socket = serverSocket.accept();
        } catch (IOException e) {
            System.out.println("Error. " + e);
        }
        
        String line;
        
        try {
            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter os = new PrintWriter(socket.getOutputStream());
            BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
            
            System.out.println("Client: " + is.readLine());
            line = sin.readLine();
            while (!line.equals("bye")){
                os.println(line);
                os.flush();
                System.out.println("Server: " + line);
                System.out.println("Client: " + is.readLine());
                line = sin.readLine();
            }
            os.close();
            is.close();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}