zoukankan      html  css  js  c++  java
  • Telnet测试BIO Socket

    实例说明:

    使用BIO模型编写一个服务器端,监听6000端口,当有客户端连接时,就启动一个线程与之通讯。

    要求使用线程池机制改善,可以连接多个客户端.

    服务器端可以接收客户端发送的数据(telnet 方式)。

    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class BIOserver {
        public static void main(String[] args)throws Exception {
            ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
    //创建serverSecket
            ServerSocket serverSocket = new ServerSocket(6000);
            System.out.print("服务器启动了");
            while (true){
                //监听,等待客户端连接
                 final Socket socket = serverSocket.accept();
                 System.out.print("连接到一个客户端");
                 //创建一个线程
                newCachedThreadPool.execute(new Runnable() {
                    @Override
                    public void run() {
                        //重写
                        //可以和客户端通信
                        handler(socket);
    
                    }
                });
            }
        }
        //编写一个handler方法,和客户端通讯
        public static void handler(Socket socket){
            try {
    
    
                byte[] bytes = new byte[1024];
                //通过Socket获取输入流
                InputStream inputStream = socket.getInputStream();
                while (true){
                    int read = inputStream.read(bytes);
                    if(read!=-1){
                        System.out.println(new java.lang.String(bytes,0,read));//输出客户端发送数据
                    }else {
                        break;
                    }
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally{
                System.out.println("关闭和client的连接");
                try{
                    socket.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
    
        }
    
    }

    启动后,打开cmd窗口 输入telnet 127.0.0.1 6000

    进入telnet 按下Ctrl+]键,发送命令:send 111,服务端就可以收到111信息

  • 相关阅读:
    Android命名规范(重点讲解:包名)
    ADT中创建Android的Activity
    Android页面切换
    js技巧
    记一次查询超时的解决方案The timeout period elapsed......
    Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置
    SQL索引详解
    php 微信公众号接入支付宝支付
    【MVC】关于Action返回结果类型的事儿(上)
    H5网站接入支付宝的支付接口
  • 原文地址:https://www.cnblogs.com/yangzhixue/p/12331686.html
Copyright © 2011-2022 走看看