`
hwei_344370758
  • 浏览: 20586 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Tcp socket server端

 
阅读更多
@Override
    public void run()
    {
        try
        {
            // 创建非邦定式连接对象
            ServerSocket ss = new ServerSocket();
            // 连接地址对象
            SocketAddress address = new InetSocketAddress(this.poolMngIp, this.port);
            // 将连接对象邦定到地址
            ss.bind(address);
            System.out.println("The SCP Listener thread has been started." + address.toString());
            //在这里可以写多个Server端,最好将Server端放进线程池里,这样有多个Server端来响应客户端的请求
            while (true)
            {
                Socket socket = ss.accept(); // 接收请求
                Client client = new Client(socket); // 将请求指定一个线程去执行
                client.start();
            }
        }
        catch (Exception e)
        {
            throw new RuntimeException(e);
        }
    }
   
    class Client extends Thread
    {
        private Socket socket;
       
        public Client(Socket socket)
        {
            this.socket = socket;
        }

        @Override
        public void run()
        {
            InputStream ips = null;
            OutputStream ops = null;
            String returnResult = "OK";
            try
            {
                ips = socket.getInputStream();
               
                ops = socket.getOutputStream();
               
                byte[] buffer = new byte[1024];
                ips.read(buffer);
                String xmlData = new String(buffer);
                xmlData = xmlData.substring(0,xmlData.indexOf(0));
               
            }
            catch (Exception e)
            {
                returnResult = "FAIL";
                logger.error(e);
            }
            finally
            {
                try
                {
                    ops.write(returnResult.getBytes());
                    if(null != ips)
                    {
                        ips.close();
                    }
                    if(null != ops)
                    {
                        ops.close();
                    }
                    if(null != socket)
                    {
                        socket.close();
                    }
                }
                catch(Exception e)
                {
                    logger.error(e);
                }
            }
        }
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics