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

📄 smppserver.java

📁 Java实现的点对点短消息发送协议(smpp)开发包源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    message4.esm = 0;
                    message4.dcs = 1;
                    message4.pid = 1;
                    message4.setFrom(new Address("999", 9, 9));
                    message4.predefined = 0;
                    message4.setText("This is a query details response");
                    message4.CC(new Address("000", 0, 0));
                    message4.CC(new Address("111", 1, 1));
                    message4.CC(new Address("222", 2, 2));
                    message4.CC("DLIST1");
                    message4.CC("DLIST2");
                    message4.CC("DLIST3");
                    message4.schedule = new Date();
                    message4.expiry = new Date();
                    message4.gsmError = 9;
                    message4.status = 9;
                    message4.timeStamp = new Date();
                    smppencoder.queryDetailsResponse(message4);
                    break;

                default:
                    log("Unknown command code " + smppheader.command);
                    break;
                }
                if(smppheader.command == 6)
                {
                    s.close();
                    return;
                }
                byte abyte0[] = null;
                if(smppencoder != null)
                    abyte0 = smppencoder.getBytes();
                smppheader.command = smppheader.command | 0x80000000;
                if(abyte0 != null)
                    smppheader.length = abyte0.length + 16;
                else
                    smppheader.length = 16;
                smppEncoder smppencoder1 = new smppEncoder();
                smppencoder1.smppHeader(smppheader);
                log("Sending header");
                byte abyte1[] = smppencoder1.getBytes();
                log("  Header sent");
                debug(smppencoder1);
                if(smppencoder != null)
                    debug(smppencoder);
                log("Sending body");
                byte abyte2[];
                if(abyte0 != null)
                    abyte2 = new byte[abyte1.length + abyte0.length];
                else
                    abyte2 = new byte[abyte1.length];
                for(int i1 = 0; i1 < abyte1.length; i1++)
                    abyte2[i1] = abyte1[i1];

                if(abyte0 != null)
                {
                    for(int j1 = 0; j1 < abyte0.length; j1++)
                        abyte2[j1 + abyte1.length] = abyte0[j1];

                }
                out.write(abyte2);
                log("  body sent");
                if(smppheader.command == 0x80000006)
                {
                    System.out.println("Server closing connection");
                    s.close();
                    return;
                }
                if(flag)
                    sendMessages(10);
            }
        } while(true);
    }

    static void log(String s1)
    {
        if(logon)
            System.out.println("SERVER: " + s1);
    }

    void stats()
    {
        log("Link queries sent " + qlink + " received " + qlinkr);
    }

    void sendqlink()
        throws Exception
    {
        smppHeader smppheader = new smppHeader();
        smppheader.command = 21;
        smppheader.sequence = qlink;
        qlink++;
        smppheader.status = 0;
        smppheader.length = 16;
        smppEncoder smppencoder = new smppEncoder();
        smppencoder.smppHeader(smppheader);
        out.write(smppencoder.getBytes());
        log("Sent query link");
    }

    void close()
        throws Exception
    {
        s.close();
    }

    smppServer(int i)
        throws Exception
    {
        ss = new ServerSocket(i);
    }

    static void debug(decoder decoder)
    {
        if(!debugon)
        {
            return;
        } else
        {
            System.out.println("RECEIVED: " + decoder);
            return;
        }
    }

    static void debug(encoder encoder1)
    {
        if(!debugon)
        {
            return;
        } else
        {
            System.out.println("SENT:     " + encoder1);
            return;
        }
    }

    void sendMessages(int i)
        throws Exception
    {
        for(int j = 0; j < i; j++)
        {
            Message message = new Message();
            message.priority = false;
            message.replacement = false;
            message.registered = false;
            message.esm = 0;
            message.dcs = 1;
            message.pid = 1;
            message.setFrom(new Address("999", 9, 9));
            message.setTo(new Address("8888", 8, 8));
            message.predefined = 0;
            message.setText("This is a message to be received");
            message.schedule = new Date();
            message.expiry = new Date();
            smppEncoder smppencoder1 = new smppEncoder();
            smppencoder1.submit(message);
            smppHeader smppheader = new smppHeader();
            smppheader.command = 4;
            smppheader.sequence = j;
            smppheader.status = 0;
            smppheader.length = 16 + smppencoder1.getBytes().length;
            smppEncoder smppencoder = new smppEncoder();
            smppencoder.smppHeader(smppheader);
            out.write(smppencoder.getBytes());
            out.write(smppencoder1.getBytes());
            log("Sent message");
        }

    }

    public static void main(String args[])
    {
        smppServer smppserver = null;
        try
        {
            smppserver = new smppServer(8011);
        }
        catch(Exception exception)
        {
            log("Exception: " + exception);
            return;
        }
        for(int i = 0; i < args.length; i++)
        {
            if(args[i].equals("log"))
                logon = true;
            if(args[i].equals("debug"))
                debugon = true;
        }

        do
        {
            try
            {
                smppserver.start();
            }
            catch(Exception exception1)
            {
                log("Exception: " + exception1);
            }
            smppserver.stats();
            try
            {
                smppserver.close();
            }
            catch(Exception exception2)
            {
                log("Close Exception: " + exception2);
            }
        } while(true);
    }

    byte[] read(int i)
        throws IOException
    {
        int j = 0;
        byte abyte0[] = new byte[i];
        try
        {
            int k;
            for(; j < i; j += k)
                if((k = in.read(abyte0, j, i - j)) == -1)
                    throw new IOException("SMSC Connection closed (remotely)");

            return abyte0;
        }
        catch(IOException ioexception)
        {
            log("Read error " + ioexception);
            throw ioexception;
        }
    }
}

⌨️ 快捷键说明

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