📄 serverdemo.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 + -