📄 smppserver.java
字号:
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 + -