📄 wapportal.java
字号:
package simulator.wap;
import net.smpp.event.ConnectionObserver;
import net.smpp.event.SMPPEvent;
import net.smpp.Connection;
import net.smpp.AlreadyBoundException;
import net.smpp.UnsupportedOperationException;
import net.smpp.version.VersionException;
import net.smpp.message.*;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import simulator.wap.message.*;
/**
*
* Author: zhouzh
* Create Time: 2004-7-26 12:12:57
*
*/
public class WapPortal implements ConnectionObserver
{
static BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args)
{
System.out.println("模拟器启动.....");
WapPortal wap = new WapPortal();
wap.start();
wap.shell();
}
Connection conn;
boolean running = false;
public WapPortal()
{
}
public void shell()
{
while (running)
{
try
{
System.out.print("-->");
String command = console.readLine().trim();
handleCommand(command);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public void start()
{
try
{
conn = new Connection("192.168.0.199", 4444, true);
conn.addObserver(this);
conn.autoAckLink(true);
conn.bind(Connection.TRANSCEIVER, "wap", "wap", "1", 0, 0, null);
running = true;
}
catch (java.net.UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException ie)
{
ie.printStackTrace();
}
}
public void update(Connection r, SMPPEvent ev)
{
System.out.println("update event");
}
public void packetReceived(Connection myConnection, SMPPPacket pak)
{
switch (pak.getCommandId())
{
case SMPPPacket.BIND_TRANSCEIVER_RESP:
if (pak.getCommandStatus() != 0)
{
System.out.println("bind失败. Error = " + pak.getCommandStatus());
}
else
{
System.out.println("bind成功");
System.out.println(((BindTransceiverResp) pak).getSystemId());
}
break;
case SMPPPacket.ENQUIRE_LINK_RESP:
System.out.println("收到ENQUIRE_LINK_RESP");
break;
case SMPPPacket.CBS_PAY_RESP:
System.out.println("收到CBS_PAY_RESP");
System.out.println("balance:"+((CBSPayResp)pak).getBalance());
System.out.println("result:"+((CBSPayResp)pak).getResult());
break;
case SMPPPacket.CBS_UNPAY_RESP:
System.out.println("收到CBS_UNPAY_RESP");
System.out.println("balance:"+((CBSUnpayResp)pak).getBalance());
System.out.println("result:"+((CBSUnpayResp)pak).getResult());
break;
case SMPPPacket.CBS_QUERY_RESP:
System.out.println("CBS_QUERY_RESP");
System.out.println("balance:"+((CBSQueryResp)pak).getBalance());
System.out.println("result:"+((CBSQueryResp)pak).getResult());
break;
}
}
private void sendRequest(SMPPRequest req)
{
try
{
conn.sendRequest(req);
}
catch (Exception e)
{
e.printStackTrace();
}
}
private void handleCommand(String command)
{
if ("pay".equalsIgnoreCase(command))
{
CBSPay pay = new CBSPay();
pay.setSpCode("12345");
pay.setSpServiceType("1234567890");
pay.setPriority(5);
pay.setCallTime("20040728111111");
pay.setPayMsisdn("8613318700531");
pay.setFeeType(2);
pay.setFee(100);
pay.setSvcType(1);
pay.setGivenFee(100);
pay.setIpAddress("192.168.0.123");
pay.setDtOctetCount(0);
pay.setDoOctetCount(0);
pay.setDuration(1);
sendRequest(pay);
}
else if ("unpay".equalsIgnoreCase(command))
{
CBSUnpay unpay = new CBSUnpay();
unpay.setOrgSn("2004082219193500000001");
unpay.setResult(1);
sendRequest(unpay);
}
else if ("query".equalsIgnoreCase(command))
{
CBSQuery query = new CBSQuery();
query.setPayMsisdn("8613318700531");
sendRequest(query);
}
else if ("unbind".equalsIgnoreCase(command))
{
Unbind req = new Unbind();
sendRequest(req);
}
else if ("enq".equalsIgnoreCase(command))
{
EnquireLink enq = new EnquireLink();
sendRequest(enq);
}
else if ("exit".equalsIgnoreCase(command))
{
running = false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -