📄 smppserver.java
字号:
// FrontEnd Plus for JAD
// DeCompiled : smppServer.class
package sms;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
import utils.decoder;
import utils.encoder;
// Referenced classes of package sms:
// smppDecoder, smppHeader, smppEncoder, Message,
// param, Customer, Address, Binding,
// listDLResponse, DLName, viewDLresponse, Member,
// AddressError, queryAllResponse, queryAll, messageId,
// smppCommands, Errors
class smppServer
implements smppCommands, Errors
{
ServerSocket ss;
Socket s;
InputStream in;
OutputStream out;
static boolean logon;
static boolean debugon;
int qlink;
int qlinkr;
void start()
throws Exception
{
boolean flag = false;
int i = 0x989680;
log("Started, ready to accept");
s = ss.accept();
in = s.getInputStream();
out = s.getOutputStream();
log("Got connection");
do
{
smppDecoder smppdecoder = new smppDecoder(read(16));
debug(smppdecoder);
smppHeader smppheader = smppdecoder.smppHeader();
if(smppheader.length > 16)
{
smppdecoder = new smppDecoder(read(smppheader.length - 16));
debug(smppdecoder);
} else
{
smppdecoder = null;
}
log("Sequence " + smppheader.sequence + " length " + smppheader.length + " command " + smppheader.command);
smppEncoder smppencoder = new smppEncoder();
if(smppheader.command == 0x80000015)
{
log("Link check response");
qlinkr++;
} else
if((smppheader.command & 0x80000000) != 0)
{
if(smppheader.command == 0x80000004)
{
Message message = smppdecoder.submitResponse();
log("Response from deliver short message " + message.id);
}
} else
{
switch(smppheader.command)
{
case 34: // '"'
param param1 = smppdecoder.paramGet();
param1.value = param1.name + "-value";
smppencoder.paramRet(param1);
break;
case 21: // '\025'
log("Received link query");
break;
case 7: // '\007'
log("Replace short message");
break;
case 8: // '\b'
log("Cancel short message");
break;
case 22: // '\026'
log("Add distribution list");
break;
case 23: // '\027'
log("Modify distribution list");
break;
case 24: // '\030'
log("Delete distribution list");
break;
case 17: // '\021'
log("Add Customer");
break;
case 18: // '\022'
log("Delete Customer");
break;
case 19: // '\023'
log("Modify Customer");
break;
case 20: // '\024'
log("Query Customer");
Customer customer = smppdecoder.getCustomer();
customer.ocos = 11111;
customer.tcos = 22222;
customer.serviceLevel = 33333;
customer.password = "qpass";
customer.streetAddress = "qstreet";
customer.name = "qname";
customer.smsAddress = new Address("qaddress", 9, 9);
customer.smsAllowed = false;
smppencoder.getCustomerResponse(customer);
break;
case 1: // '\001'
flag = true;
// fall through
case 2: // '\002'
log("Bind");
Binding binding = smppdecoder.bind();
binding.smsc = "ESME";
smppencoder.bindResponse(binding);
break;
case 6: // '\006'
log("Unbind");
smppencoder = null;
break;
case 32: // ' '
log("List DLS");
listDLResponse listdlresponse = new listDLResponse();
listdlresponse.names = new DLName[20];
listdlresponse.names_len = 20;
int j = 0;
do
{
DLName dlname = new DLName();
dlname.name = "DLNAME" + j;
listdlresponse.names[j] = dlname;
} while(++j < 20);
smppencoder.listDLResponse(listdlresponse);
break;
case 25: // '\031'
log("View DL");
viewDLresponse viewdlresponse = new viewDLresponse();
viewdlresponse.members = new Member[20];
viewdlresponse.members_len = 20;
int k = 0;
do
viewdlresponse.members[k] = new Member("mem" + k, new Address("memaddr" + k, k, k));
while(++k < 20);
smppencoder.viewDLresponse(viewdlresponse);
break;
case 4: // '\004'
log("Submit");
Message message1;
if(smppdecoder == null)
{
log("No message body!");
message1 = new Message();
} else
{
log("Submit Decoding submit");
message1 = smppdecoder.submit();
log("Submit Decoded submit");
}
message1.id = "" + i;
i++;
log("Submit Sending response");
smppencoder.submitResponse(message1);
log("Submit response sent");
break;
case 33: // '!'
log("Submit-multi");
Message message2 = smppdecoder.submitMulti();
message2.id = "" + i;
i++;
message2.fails = new AddressError[1];
message2.fails[0] = new AddressError(new Address("999999999", 9, 9), 100);
message2.fails_len = 1;
smppencoder.submitMultiResponse(message2);
break;
case 3: // '\003'
log("Query message");
Message message3 = smppdecoder.query();
message3.gsmError = 9;
message3.status = 9;
message3.timeStamp = new Date();
smppencoder.queryResponse(message3);
break;
case 35: // '#'
log("Query all messages");
queryAll queryall = smppdecoder.queryAll();
log("Decoded");
queryAllResponse queryallresponse = new queryAllResponse();
queryallresponse.ids = new messageId[queryall.count];
for(int l = 0; l < queryall.count; l++)
{
queryallresponse.ids[l] = new messageId();
queryallresponse.ids[l].id = "12345678";
}
queryallresponse.ids_len = queryall.count;
smppencoder.queryAllResponse(queryallresponse);
break;
case 36: // '$'
log("Query message details");
Message message4 = smppdecoder.queryDetails();
message4.priority = false;
message4.replacement = false;
message4.registered = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -