⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverdemo.java

📁 cnc网通小灵通网关接口源码
💻 JAVA
字号:
package cncgw.xsms;/** * <p>Title: 小灵通网关</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: yy</p> * @author lxf * @version 1.0 */import java.net.*;import java.io.*;import java.util.*;import cncgw.parser.ParseXml;import org.jdom.*;public class ServerDemo extends Thread{    private ServerSocket serverSocket ;    private Socket socket = null;    private static ServerDemo  Instance = null;    private int port = 8010;    private static Object InstanceLock = new Object();    private BufferedReader inBReader;    private OutputStream out;    private BufferedReader in;    private InputStream ins ;    public Object lockObject=new Object();    public ServerDemo() {    try {        serverSocket = new ServerSocket(8010);        System.out.println("模拟中心网关启动监听端口" + port + ".");        start();       } catch(Exception ioe) {           System.out.println("模拟中心网关错误启动监听端口" + port + ":" + ioe);       }  }  public void run() {      while(true) {          try {              System.out.println("开始 accept........." );              socket = serverSocket.accept();              String inputDataString="";//              try//              {//                inBReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));//                String strtemp=null;////                while( (strtemp=inBReader.readLine())!=null)//                {//                  inputDataString = inputDataString + strtemp;////                }//              }catch(Exception e)//              {//                System.out.println("[错误]-接收Socket信息时发生错误!"+e);//              }              inputDataString = SocketRead();              System.out.println("server接受到一个xml消息串长:"+inputDataString.length());              System.out.println("server接受到一个xml消息串:"+inputDataString);              ParseXml.xmlConfig(removeBr(inputDataString));              System.out.println("---------------- header:------------");              int command_id = Integer.parseInt(ParseXml.getElement("command_id").trim());              System.out.println("get command_id ::"+command_id);              int command_status = Integer.parseInt(ParseXml.getElement("command_status").trim());              System.out.println("get command_status ::"+command_status);              int sequence_no = Integer.parseInt(ParseXml.getElement("sequence_no").trim());              System.out.println("get sequence_no ::"+sequence_no);              switch(command_id)                      {                      case 1:                          System.out.println("this is a login request!");                          String login_resp = getSendHeader(0x80000001,0,sequence_no)+getLoginRespBodyXML();                          SocketSend(login_resp);                          System.out.println("login resp have send!");                          break;                      case 4:                          System.out.println("this is a submit request!");                          String submit_resp = getSendHeader(0x80000004,0,sequence_no)+getSubmitRespBodyXML();                          SocketSend(submit_resp);                          System.out.println("submit resp have send!");                          break;                      case 15:                          System.out.println("this is active request!");                          String active_resp = getSendHeader(0x80000015,0,sequence_no);                          SocketSend(active_resp);                          System.out.println("active resp have send!");                          break;                      case 2:                          System.out.println("this is logout request!");                          String logout_resp = getSendHeader(0x80000002,0,sequence_no);                          SocketSend(logout_resp);                          System.out.println("logout resp have send!");                          try                          {                            inBReader.close();                            socket.close();                            System.out.println("server 成功关闭连接!");                          }                          catch(Exception eU)                          {                            System.out.println("server关闭Socket出错!"+eU.getMessage());                          }                          break;                      case -2147483643:                          System.out.println("this is deliver response!!!");                          break;                      default:                          System.out.println("---------Error packet-----------");                          break;              }          } catch(Exception ioe) {              System.out.println("启动port" + port + " error:" + ioe);          }      }  }  /**    * 将/n处理掉<br>    */   private  String removeBr(String Content){       String makeContent = new String();       StringTokenizer strToken = new StringTokenizer(Content,"\n");       while(strToken.hasMoreTokens()) {           makeContent = makeContent + strToken.nextToken();       }       return makeContent;   }   public  void SocketSend(String xmlStr)    {      try      {                out = socket.getOutputStream();                out.write(xmlStr.getBytes());                out.flush();        }        catch(IOException esocket)        {           System.out.println("[出错]-向icp网关发送数据包出错!"+esocket);        }    }    protected String getSendHeader(int command_id,int command_status,int sequence_no)    {      StringBuffer sb = new StringBuffer();      sb.append("<?xml version=\"1.0\" encoding = \"GBK\"?>");      sb.append("<xsmp>");      sb.append("<message_header>");      sb.append("<command_id>"+command_id+"</command_id>");      sb.append("<command_status>"+command_status+"</command_status>");      sb.append("<sequence_no>"+sequence_no+"</sequence_no>");      sb.append("</message_header>");        return sb.toString();    }    public String getLoginRespBodyXML()    {      StringBuffer sb = new StringBuffer();      sb.append("<message_body>");      sb.append("<system_id>"+0+"</system_id>");      sb.append("</message_body>");      sb.append("</xsmp>");      return sb.toString();    }    public String getSubmitRespBodyXML()    {      StringBuffer sb = new StringBuffer();      sb.append("<message_body>");      sb.append("<system_id>"+0+"</system_id>");      sb.append("</message_body>");      sb.append("</xsmp>");      return sb.toString();    }    public static ServerDemo getInstance()        {            if(Instance==null)            {                synchronized(InstanceLock)                {                    if(Instance==null)                    {                        Instance= new ServerDemo();                    }                }            }            return Instance;        }        public static void main(String[] args) {                   ServerDemo.getInstance();      }      public  String SocketRead()    {        try        {            ins = socket.getInputStream();            String readStr="";            String readLine=null;//            byte[] xmlHeader = new byte[8];//            ins.read(xmlHeader);//            String xmlHeaderStr = new String(xmlHeader);//            int xmlLength = Integer.parseInt(xmlHeaderStr.substring(4,8))-8;//            byte[] xmlString = new byte[xmlLength];            byte[] xmlString = new byte[1024*4];            int readLength=ins.read(xmlString);//            while((xmlLength-readLength)>0)//            {//              byte[] loseString = new byte[xmlLength-readLength];//              int loseLength=ins.read(loseString);//              for(int i=0;i<loseLength;i++)//                xmlString[readLength+i] = loseString[i];//              readLength=readLength+loseLength;////            }            readStr =new String(xmlString);            return readStr.trim();        }        catch(Exception e )        {          System.out.println("从Socket读取信息发生错误!");        }        return "";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -