zoukankan      html  css  js  c++  java
  • Xsocket学习

    1.xsocket是一个轻量级的基于NIO的服务器框架,用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理,异步读写等方面的操作。

      定义一个借口,继承IDataHandler,IConnectExceptionHandler, IConnectHandler, IDisconnectHandler:

    public interface SocketDataHander extends IDataHandler,
        IConnectExceptionHandler, IConnectHandler, IDisconnectHandler{
    
    }
    View Code

      写出这个接口的实现方法:

     

     1 public class SocketUnionPay implements SocketDataHander{
     2 
     3     
     4     @Override
     5     public boolean onData(INonBlockingConnection connection) throws IOException,
     6             BufferUnderflowException, ClosedChannelException,
     7             MaxReadSizeExceededException {
     8         // TODO Auto-generated method stub
     9         start = System.currentTimeMillis();//获取当前时间
    10         byte[] data = connection.readBytesByLength(connection.available());  //监控接收到的数据
    11         
    12         //接收数据,转换为输出流,并且输出
    13         receiveBufByte = new Iso8583_Send_OutputStream(null);
    14         receiveBufByte.write(data, 0, data.length);
    15         System.out.println("##############################长度:"+data.length);
    16         
    17         if(receiveBufByte.length() > 9){
    18             LOG.info("接收数据:" + new String(receiveBufByte.getBufbyte()) + "  长度:" + receiveBufByte.length());
    19             
    20             byte[] sendata = unionPay_processingCentre.sendTreatmentTrade(receiveBufByte.getBufbyte());  //处理发送并返回
    21             byte[] rendata = unionPay_processingCentre.respTreatmentTrade(sendata);//数据返回处理
    22             LOG.info("返回数据:" + new String(rendata));
    23             connection.write(rendata);
    24         }
    25         
    26         end = System.currentTimeMillis();
    27         if(LOG.isTraceEnabled()){
    28             LOG.trace("########################前置处理耗时:"+(end-start)+"#######################");
    29         }
    30         return true;
    31     }
    32 
    33     @Override
    34     public boolean onConnectException(INonBlockingConnection connection,
    35             IOException e) throws IOException {
    36         // TODO Auto-generated method stub
    37         LOG.error("转发Bank连接异常..onConnectException...");
    38         return true;
    39     }
    40 
    41     @Override
    42     public boolean onConnect(INonBlockingConnection connection) throws IOException,
    43             BufferUnderflowException, MaxReadSizeExceededException {
    44         // TODO Auto-generated method stub
    45         LOG.info("Scoket前置打开连接..onConnect...");
    46         return true;
    47     }
    48 
    49     @Override
    50     public boolean onDisconnect(INonBlockingConnection connection) throws IOException {
    51         // TODO Auto-generated method stub
    52         LOG.info("Scoket前置关闭连接..onDisconnect...");
    53         connection.close();
    54         return true;
    55     }
    56 
    57 }
  • 相关阅读:
    团队题目及相关介绍
    团队介绍
    寒假8
    寒假作业七
    寒假7
    寒假作业六
    寒假6
    寒假作业五
    寒假5
    寒假作四
  • 原文地址:https://www.cnblogs.com/feitianshaoxai/p/5807319.html
Copyright © 2011-2022 走看看