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

📄 serverdemo.java~1~

📁 cnc网通小灵通网关接口源码
💻 JAVA~1~
字号:
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.*;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;    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();              System.out.println("need stop sub thread:" + isSubActive);              if(isSubActive) {                  //关闭历史线程                  try {                      //等待关闭历史线程                      sleep(500);                  } catch(Exception se) {                      //donothing                  }              }              try              {                receiveBuffer = connection.receive();              }              catch(Exception e)              {System.out.println(e);                throw new Exception("从Socket读发生错误");              }              if(receiveBuffer!=null){                byte[] zzz = receiveBuffer.getBuffer();                System.out.println("login--receiveBuffer--------------");                for(int i=0;i<zzz.length;i++)                  System.out.println("byte["+i+"]-->"+zzz[i]);                System.out.println("already receive");                ReceiverHead.setHead(receiveBuffer);                System.out.println("CommandLength::"+ReceiverHead.getCommandLength());                System.out.println("CommandID::"+ReceiverHead.getCommandID());                System.out.println("CommandStatus::"+ReceiverHead.getCommandStatus());                System.out.println("SenderCB::"+ReceiverHead.getSenderCB());                System.out.println("ReceiverCB::"+ReceiverHead.getReceiverCB());              if(ReceiverHead.getCommandID()==GSendData.UssdBegin)              {                  UssdBegin beginResp = new UssdBegin();                  beginResp.setBody(receiveBuffer);                  System.out.println("this is a begin request....");                  System.out.println("get begin request UssdVersion::"+beginResp.getUssdVersion());                  System.out.println("get begin request UssdOpType::"+beginResp.getUssdOpType());                  System.out.println("get begin request MsIsdn::"+beginResp.getMsIsdn());                  System.out.println("get begin request ServiceCode::"+beginResp.getServiceCode());                  System.out.println("get begin request CodeScheme::"+beginResp.getCodeScheme());                  System.out.println("get begin request UssdString::"+beginResp.getUssdString());                  beginResp.setUssdString("begin 测试 success!");                  connection.send(beginResp.getBeginStr(0x00000112,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdContinue){                UssdContinue ContinueResp = new UssdContinue();                 ContinueResp.setBody(receiveBuffer);                 System.out.println("this is a continue request....");                 System.out.println("get continue request UssdVersion::"+ContinueResp.getUssdVersion());                 System.out.println("get continue request UssdOpType::"+ContinueResp.getUssdOpType());                 System.out.println("get continue request MsIsdn::"+ContinueResp.getMsIsdn());                 System.out.println("get continue request ServiceCode::"+ContinueResp.getServiceCode());                 System.out.println("get continue request CodeScheme::"+ContinueResp.getCodeScheme());                  System.out.println("get continue request UssdString::"+ContinueResp.getUssdString());                  ContinueResp.setUssdString("continue 测试 success!");                  connection.send(ContinueResp.getContinueStr(0x00000223,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdEnd){                UssdEnd endResp = new UssdEnd();                 endResp.setBody(receiveBuffer);                 System.out.println("this is a end request....");                 System.out.println("get end request UssdVersion::"+endResp.getUssdVersion());                 System.out.println("get end request UssdOpType::"+endResp.getUssdOpType());                 System.out.println("get end request MsIsdn::"+endResp.getMsIsdn());                 System.out.println("get end request ServiceCode::"+endResp.getServiceCode());                 System.out.println("get end request CodeScheme::"+endResp.getCodeScheme());                  System.out.println("get end request UssdString::"+endResp.getUssdString());                  endResp.setUssdString("end 测试 success!");                  connection.send(endResp.getEndStr(0x00000334,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdSwitch){                UssdSwitch switchResp = new UssdSwitch();                 switchResp.setBody(receiveBuffer);                 System.out.println("this is a switch request....");                 System.out.println("get switch request SwitchMode::"+switchResp.getSwitchMode());                 System.out.println("get switch request MsIsdn::"+switchResp.getMsIsdn());                 System.out.println("get switch request ServiceCode::"+switchResp.getServiceCode());                 System.out.println("get switch request UssdString::"+switchResp.getUssdString());                 switchResp.setUssdString("switch 测试 success!");                  connection.send(switchResp.getBeginStr(0x00000667,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdChargeInd){                UssdChargeInd chargeIndResp = new UssdChargeInd();                 chargeIndResp.setBody(receiveBuffer);                 System.out.println("this is a chargeInd request....");                 System.out.println("get chargeInd request ChargeRatio::"+chargeIndResp.getChargeRatio());                 System.out.println("get chargeInd request ChargeType::"+chargeIndResp.getChargeType());                 System.out.println("get chargeInd request ChargeSource::"+chargeIndResp.getChargeSource());                 System.out.println("get chargeInd request ChargeLocation::"+chargeIndResp.getChargeLocation());                 chargeIndResp.setChargeSource("ussdc");                 connection.send(chargeIndResp.getBeginStr(0x00000778,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdShakeResp){                 System.out.println("this is a shakeResp request....");                 UssdShakeResp shakeResp = new UssdShakeResp();                 connection.send(shakeResp.getShakeRespStr(GSendData.CMD_No_Err));              }else if(ReceiverHead.getCommandID()==GSendData.UssdAbort){                System.out.println("this is a abort request....");                UssdAbort abortResp = new UssdAbort();                connection.send(abortResp.getAbortStr(GSendData.CMD_No_Err,0x00000445,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdError){                System.out.println("this is a error request....");                UssdError errResp = new UssdError();                connection.send(errResp.getErrorStr(GSendData.CMD_No_Err,0x00000556,ReceiverHead.getSenderCB()));              }else if(ReceiverHead.getCommandID()==GSendData.UssdBind){                System.out.println("this is a bind request....");                GSendBindRequest bind = new GSendBindRequest();                GSendBindResponse bindResp = new GSendBindResponse();                bind.setReponsePackage(receiveBuffer);                System.out.println("get chargeInd request AccountName::"+bind.getAccountName());                System.out.println("get chargeInd request Password::"+bind.getPassword());                System.out.println("get chargeInd request SystemType::"+bind.getSystemType());                System.out.println("get chargeInd request InterfaceVersion::"+bind.getInterfaceVersion());                bindResp.setAccountName(bind.getAccountName());                if(bind.getAccountName().trim().equals("webimation")&&bind.getPassword().trim().equals("zpj")){                  connection.send(bindResp.getBindRespStr(GSendData.CMD_No_Err));                }else if(bind.getAccountName().equals("webimation")){                  connection.send(bindResp.getBindRespStr(GSendData.CMD_Invalid_Password));                }else{                  connection.send(bindResp.getBindRespStr(GSendData.CMD_Invalid_Accountname));                }              }else if(ReceiverHead.getCommandID()==GSendData.UssdUnBind){                System.out.println("this is a unbind request....");                GSendExitSM unBind = new GSendExitSM();                GSendExitSMResp unBindResp = new GSendExitSMResp();//                 unBind.setExitPackage(receiveBuffer);                connection.send(unBindResp.getExitRespStr(GSendData.CMD_No_Err));                try                {                  connection.close();                  serverConn.close();                  System.out.println("ussdc 成功关闭连接!");                }                catch(Exception eU)                {                  throw new Exception("ussdc关闭Socket出错!"+eU.getMessage());                }                break;              }else if(ReceiverHead.getCommandID()==GSendData.UssdShake){                System.out.println("this is a shake request....");                UssdShake shake = new UssdShake();                UssdShakeResp shakeResp = new UssdShakeResp();//                 unBind.setExitPackage(receiveBuffer);                connection.send(shakeResp.getShakeRespStr(GSendData.CMD_No_Err));              }else {                 System.out.println("there ara errors!!!");                   }              }  //标识子线程已经启动              setIsSubActive(true);          } catch(Exception ioe) {              System.out.println("启动port" + port + " error:" + ioe);          }      }  }}

⌨️ 快捷键说明

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