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信息

  • 相关阅读:
    python-函数进阶
    SHELL wordpress.sh
    XFS: possible memory allocation deadlock in kmem_alloc (mode:0x2d0)
    Puppet install with nginx unicorn
    CentOS 6内核编译问题整理
    Openstack 本地yum源配置
    Openstack 本地yum源配置
    hpsa 0000:0a:00.0: out of memory
    openstack VNC安全问题
    CentOS下crash分析内核kdump文件方法
  • 原文地址:https://www.cnblogs.com/yangzhixue/p/12331686.html
Copyright © 2011-2022 走看看