Board logo

标题: IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式(5) [打印本页]

作者: yuyang911220    时间: 2015-11-21 16:53     标题: IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式(5)

public class MultithreadJIoSocketTest{    @Test    public void testMultithreadJIoSocket() throws Exception    {        ServerSocket serverSocket = new ServerSocket(10002);        Thread thread = new Thread(new Accptor(serverSocket));        thread.start();                Scanner scanner = new Scanner(System.in);        scanner.next();    }        public class Accptor implements Runnable    {        private ServerSocket serverSocket;                public Accptor(ServerSocket serverSocket)        {            this.serverSocket = serverSocket;        }        public void run()        {            while (true)            {                Socket socket = null;                try                {                    socket = serverSocket.accept();                    if(socket != null)                    {                        System.out.println("收到了socket:" + socket.getRemoteSocketAddress().toString());                        Thread thread = new Thread(new Processor(socket));                        thread.start();                    }                }                catch (IOException e)                {                    e.printStackTrace();                }            }        }    }        public class Processor implements Runnable    {        private Socket socket;                public Processor(Socket socket)        {            this.socket = socket;        }                @Override        public void run()        {            try            {                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));                String readLine;                while(true)                {                    readLine = in.readLine();                    System.out.println("收到消息" + readLine);                    if("end".equals(readLine))                    {                        break;                    }                    //客户端断开连接                    socket.sendUrgentData(0xFF);                    Thread.sleep(5000);                }            }            catch (InterruptedException e)            {               e.printStackTrace();            }            catch (SocketException se)            {                System.out.println("客户端断开连接");            }            catch (IOException e)            {                e.printStackTrace();            }            finally {                try                {                    socket.close();                }                catch (IOException e)                {                    e.printStackTrace();                }            }        }            }}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0