zoukankan      html  css  js  c++  java
  • Socket实现服务端

    注意阻塞:

    server.accept();
    inputStream.read(bytes);

    1、socket实现服务端

    package com.example.netty.lesson1;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.concurrent.ExecutorService;
    
    import static java.util.concurrent.Executors.*;
    
    /**
     * @author yangwj
     * @date 2020/4/4 9:42
     */
    public class OioServer {
        public static void main(String[] args) throws IOException {
            ExecutorService newCacheThreadPool = newCachedThreadPool();
            //创建Socket服务,监听10000端口
            ServerSocket server = new ServerSocket(51503);
            System.out.println("服务启动");
            while (true){
                //获取一个套接字(阻塞)
                final Socket socket = server.accept();
                System.out.println("来了一个客户端");
                newCacheThreadPool.execute(new Runnable() {
                    @Override
                    public void run() {
                        handler(socket);
                    }
                });
            }
        }
    
        private static void handler(Socket socket) {
            byte[] bytes = new byte[1024];
            try {
                InputStream inputStream = socket.getInputStream();
                while (true){
                    //读取数据(阻塞)
                    int read = inputStream.read(bytes);
                    if(read != -1){
                        System.out.println(new String(bytes,0,read));
                    }else {
                        break;
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                System.out.println("socket关闭");
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    团队贡献分汇总
    【Gamma】Scrum Meeting 1
    【Beta】测试报告
    【Beta】发布说明
    【技术博客】JWT的认证机制Django项目中应用
    Daily Scrumming* 2015.12.17(Day 9)
    Daily Scrumming* 2015.12.16(Day 8)
    Daily Scrumming* 2015.12.15(Day 7)
    Daily Scrumming* 2015.12.13(Day 5)
    Daily Scrumming* 2015.12.12(Day 4)
  • 原文地址:https://www.cnblogs.com/ywjfx/p/12644488.html
Copyright © 2011-2022 走看看