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

📄 wapportal.java

📁 WAP服务器
💻 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 + -