Una demostración minimalista de Java Zócalo BIO

versión minimalista

Recientes listo para aprender una Netty onda, sino a sus propios no están familiarizados con el Java NIO, BIO, AIO, por lo que el primero para familiarizarse con lo familiar.

Kankan primero en el documento: Todo el Acerca de sockets

Este documento es demasiado largo aliento. . A veces no sabían por dónde empezar, sólo para encontrar un tutorial de vídeo o una conferencia hermana, que no puedo ah sueño, que brilla en la mano para llamar de nuevo.

Lo @test @ Sl4j me dio Orgía ir, métodos principales y Sout es el reyd_01

Hombre de pocas palabras, dijo, directamente sobre el código y los resultados operativos.

código del servidor:

public static void main(String[] args) {
        final int PORT = 8899;
        ServerSocket serverSocket = null;
        BufferedWriter writer = null;
        try {
            serverSocket = new ServerSocket(PORT);
            System.out.println("服务器已启动!正在监听端口"+PORT);
            while (true){
               Socket socket = serverSocket.accept();
                System.out.println("客户端 "+socket.getPort()+" 已连接");
                BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                String message = reader.readLine();
                if (message != null){
                    System.out.println("收到一条来自客户端 "+socket.getPort()+" 发送的消息:"+message);
                }
                //加了\n readLine才能生效
                writer.write("你才是" + message + "\n");
                writer.flush(); //清理缓冲区
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(writer != null){
                try {
                    writer.close();
                    System.out.println("服务器挂掉了。。再见");
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

El código de cliente:

    public static void main(String[] args) {
        final String Host = "127.0.0.1";
        final int Port = 8899;
        BufferedWriter writer = null;
        try {
            Socket socket = new Socket(Host,Port);
            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
            String message = console.readLine();
            writer.write(message+"\n");
            writer.flush();

            String responseMsg = reader.readLine();
            System.out.println("收到了来自服务器的回复:" + responseMsg);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(writer != null){
                try {
                    writer.close();
                    System.out.println("客户端关闭了连接");
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

código de servidor para ejecutar, esta vez el servicio se ha iniciado satisfactoriamente! :

Una demostración minimalista de Java Zócalo BIO

A continuación, ejecute el código de cliente, el servicio y la conexión del cliente es un éxito !:

Una demostración minimalista de Java Zócalo BIO

El cliente envía un mensaje:

Una demostración minimalista de Java Zócalo BIO

Una demostración minimalista de Java Zócalo BIO

versión multi-hilo

Este tutorial es una versión multi-hilo, de hecho, el código del lado del servidor puede ser reutilizado en la parte de extracción por separado como una herencia de clases rosca interior, entonces el bucle while, cada vez que hay una visita del cliente, lo hará abrir un hilo dedicado a manejar la petición del cliente

De hecho, la versión minimalista del código anterior, puede también ser replicado más completamente varios de cliente, y ejecutar al mismo tiempo, el código del lado del servidor de acuerdo con los resultados de un orden de recepción de la solicitud del cliente y devuelve los correspondientes, mientras que bucle sin cansado, a menos corte de energíad_02

resumen

Esta es la leyenda de BIO, y usarlo, me siento una relación sencilla, ya que el principio subyacente, nada más que TCP / IP ese conjunto (aunque no lo hago muy familiarizado con ..)

A continuación se profundiza poco a poco.

typora de PicGo plug-in de alguna manera ha dejado de subir fotos del proceso ya no es un sedoso, no son razones en cualquier lugar disponible, algunos afectan el estado de ánimo. .

Tal es la vida, sin saber nunca un trozo de chocolate amargo es dulce.

Supongo que te gusta

Origin blog.51cto.com/14047097/2477149
Recomendado
Clasificación