JAVA BIO例子

来源:互联网 发布:linux查看内存插槽 编辑:程序博客网 时间:2024/05/18 20:36

关键点:

out.flush(); // 强制刷新


BioServer.java:

package bio;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class BioServer {    public static void main(String[] args) {        ServerSocket server = null;        try {            server = new ServerSocket(1986);            System.out.println(" server init " );            Socket socket = null;            while (true){                socket = server.accept();                System.out.println(" server received connect . " );                Thread thread = new BioServerHandle(socket);                thread.start();            }        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                server.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}


BioServerHandle.java


package bio;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class BioServerHandle extends Thread {    private Socket socket;    public BioServerHandle(Socket socket) {        this.socket = socket;    }    @Override    public void run() {        BufferedReader in = null;        PrintWriter out = null;        String body = null;        try {            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));            out = new PrintWriter(socket.getOutputStream(),true);            while ((body = in.readLine()) != null && body.length()!=0) {                System.out.println("server received : " + body);                out.print("2\n");                out.flush();            }        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                in.close();            } catch (IOException e) {                e.printStackTrace();            }            try {                out.close();            } catch (Exception e) {                e.printStackTrace();            }            try {                socket.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}


BioClient.java


package bio;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class BioClient {    public static void main(String[] args) {        for (int i = 0; i < 100; i++) {            new Thread(new Runnable() {                @Override                public void run() {                    Socket socket = null;                    BufferedReader in = null;                    PrintWriter out = null;                    try {                        socket = new Socket("127.0.0.1", 1986);                        System.out.println(" client init ");                        in = new BufferedReader(new InputStreamReader(socket.getInputStream()));                        out = new PrintWriter(socket.getOutputStream(),true);                        out.print("1\n");                        out.flush();                        System.out.println(" client send ");                        System.out.println(" client received : " + in.readLine());                    } catch (Exception e) {                        e.printStackTrace();                    } finally {                        try {                            in.close();                        } catch (IOException e) {                            e.printStackTrace();                        }                        try {                            out.close();                        } catch (Exception e) {                            e.printStackTrace();                        }                        try {                            socket.close();                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                }            }).start();        }    }}










0 0
原创粉丝点击