📄 smppclient.java
字号:
* @return javax.swing.JButton
*/
private JButton getBindButton() {
if (bindButton == null) {
bindButton = new JButton();
bindButton.setBounds(new Rectangle(414, 63, 68, 21));
bindButton.setText("Bind");
bindButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
bind();
}
});
}
return bindButton;
}
/**
* This method initializes smscPortTextField
*
* @return javax.swing.JTextField
*/
private JTextField getSmscPortTextField() {
if (smscPortTextField == null) {
smscPortTextField = new JTextField();
smscPortTextField.setBounds(new Rectangle(415, 38, 67, 22));
smscPortTextField.setText("2552");
}
return smscPortTextField;
}
/**
* This method initializes serviceTypeTextField
*
* @return javax.swing.JTextField
*/
private JTextField getServiceTypeTextField() {
if (serviceTypeTextField == null) {
serviceTypeTextField = new JTextField();
serviceTypeTextField.setBounds(new Rectangle(375, 150, 106, 22));
serviceTypeTextField.setText(serviceType);
}
return serviceTypeTextField;
}
/**
* This method initializes sourceTextField
*
* @return javax.swing.JTextField
*/
private JTextField getSourceTextField() {
if (sourceTextField == null) {
sourceTextField = new JTextField();
sourceTextField.setBounds(new Rectangle(98, 278, 127, 22));
}
return sourceTextField;
}
/**
* This method initializes destinationTextField
*
* @return javax.swing.JTextField
*/
private JTextField getDestinationTextField() {
if (destinationTextField == null) {
destinationTextField = new JTextField();
destinationTextField.setBounds(new Rectangle(98, 346, 127, 22));
}
return destinationTextField;
}
/**
* This method initializes submitButton
*
* @return javax.swing.JButton
*/
private JButton getSubmitButton() {
if (submitButton == null) {
submitButton = new JButton();
submitButton.setBounds(new Rectangle(31, 408, 82, 23));
submitButton.setText("Submit");
submitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
submit();
}
});
}
return submitButton;
}
/**
* This method initializes ripfTextField
*
* @return javax.swing.JTextField
*/
private JTextField getRipfTextField() {
if (ripfTextField == null) {
ripfTextField = new JTextField();
ripfTextField.setBounds(new Rectangle(375, 176, 106, 22));
ripfTextField.setText(String.valueOf(registeredDelivery));
}
return ripfTextField;
}
/**
* This method initializes sdtTextField
*
* @return javax.swing.JTextField
*/
private JTextField getSdtTextField() {
if (sdtTextField == null) {
sdtTextField = new JTextField();
sdtTextField.setBounds(new Rectangle(375, 202, 106, 21));
sdtTextField.setText(scheduleDeliveryTime);
}
return sdtTextField;
}
/**
* This method initializes validityPeriodTextField
*
* @return javax.swing.JTextField
*/
private JTextField getValidityPeriodTextField() {
if (validityPeriodTextField == null) {
validityPeriodTextField = new JTextField();
validityPeriodTextField.setBounds(new Rectangle(375, 227, 106, 22));
validityPeriodTextField.setText(validityPeriod);
}
return validityPeriodTextField;
}
/**
* This method initializes esmClassTextField
*
* @return javax.swing.JTextField
*/
private JTextField getEsmClassTextField() {
if (esmClassTextField == null) {
esmClassTextField = new JTextField();
esmClassTextField.setBounds(new Rectangle(375, 253, 106, 21));
esmClassTextField.setText(String.valueOf(esmClass));
}
return esmClassTextField;
}
/**
* This method initializes protocolIdTextField
*
* @return javax.swing.JTextField
*/
private JTextField getProtocolIdTextField() {
if (protocolIdTextField == null) {
protocolIdTextField = new JTextField();
protocolIdTextField.setBounds(new Rectangle(375, 279, 106, 21));
protocolIdTextField.setText(String.valueOf(protocolId));
}
return protocolIdTextField;
}
/**
* This method initializes priorityFlagTextField
*
* @return javax.swing.JTextField
*/
private JTextField getPriorityFlagTextField() {
if (priorityFlagTextField == null) {
priorityFlagTextField = new JTextField();
priorityFlagTextField.setBounds(new Rectangle(375, 304, 106, 21));
priorityFlagTextField.setText(String.valueOf(priorityFlag));
}
return priorityFlagTextField;
}
/**
* This method initializes regisDeliTextField
*
* @return javax.swing.JTextField
*/
private JTextField getRegisDeliTextField() {
if (regisDeliTextField == null) {
regisDeliTextField = new JTextField();
regisDeliTextField.setBounds(new Rectangle(375, 329, 106, 21));
regisDeliTextField.setText(String.valueOf(registeredDelivery));
}
return regisDeliTextField;
}
/**
* This method initializes dataEncodingTextField
*
* @return javax.swing.JTextField
*/
private JTextField getDataEncodingTextField() {
if (dataEncodingTextField == null) {
dataEncodingTextField = new JTextField();
dataEncodingTextField.setBounds(new Rectangle(375, 355, 106, 22));
dataEncodingTextField.setText(String.valueOf(dataCoding));
}
return dataEncodingTextField;
}
/**
* This method initializes sdmiTextField
*
* @return javax.swing.JTextField
*/
private JTextField getSdmiTextField() {
if (sdmiTextField == null) {
sdmiTextField = new JTextField();
sdmiTextField.setBounds(new Rectangle(375, 381, 106, 22));
sdmiTextField.setText(String.valueOf(smDefaultMsgId));
}
return sdmiTextField;
}
/**
* This method initializes unbindButton
*
* @return javax.swing.JButton
*/
private JButton getUnbindButton() {
if (unbindButton == null) {
unbindButton = new JButton();
unbindButton.setBounds(new Rectangle(414, 87, 68, 22));
unbindButton.setText("Unb");
unbindButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
unbind();
}
});
}
return unbindButton;
}
/**
* This method initializes exitButton
*
* @return javax.swing.JButton
*/
private JButton getExitButton() {
if (exitButton == null) {
exitButton = new JButton();
exitButton.setBounds(new Rectangle(204, 551, 66, 23));
exitButton.setText("Exit");
exitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// System.out.println("actionPerformed()"); // TODO
// Auto-generated Event stub actionPerformed()
exit();
System.exit(0);
}
});
}
return exitButton;
}
// ******************************************************************************
/**
* Init client method to ready connect
*/
private void initClient() {
System.out.println("Initialising...");
addStatus("Initialising...");
debug.activate();
event.activate();
SmppObject.setDebug(debug);
SmppObject.setEvent(event);
try {
loadProperties(propsFilePath);
} catch (IOException e) {
event.write(e, "");
debug.write("exception initialising SMPPTest " + e);
System.out.println("Exception initialising SMPPTest " + e);
addStatus("Exception initialising SMPPTest " + e);
}
}
/**
* The first method called to start communication betwen an ESME and a SMSC.
* A new instance of <code>TCPIPConnection</code> is created and the IP
* address and port obtained from user are passed to this instance. New
* <code>Session</code> is created which uses the created
* <code>TCPIPConnection</code>. All the parameters required for a bind
* are set to the <code>BindRequest</code> and this request is passed to
* the <code>Session</code>'s <code>bind</code> method. If the call is
* successful, the application should be bound to the SMSC.
*
* See "SMPP Protocol Specification 3.4, 4.1 BIND Operation."
*
* @see BindRequest
* @see BindResponse
* @see TCPIPConnection
* @see Session#bind(BindRequest)
* @see Session#bind(BindRequest,ServerPDUEventListener)
*/
private void bind() {
debug.enter(this, "SMPPTest.bind()");
try {
if (bound) {
System.out.println("Already bound, unbind first.");
addStatus("Already bound, unbind first.");
return;
}
BindRequest request = null;
BindResponse response = null;
String syncMode = (asynchronous ? "a" : "s");
// type of the session
syncMode = getParam(syncModeTextField, syncMode);
if (syncMode.compareToIgnoreCase("a") == 0) {
asynchronous = true;
} else if (syncMode.compareToIgnoreCase("s") == 0) {
asynchronous = false;
} else {
System.out
.println("Invalid mode async/sync, expected a or s, got "
+ syncMode + ". Operation canceled.");
addStatus("Invalid mode async/sync, expected a or s, got "
+ syncMode + ". Operation canceled.");
return;
}
// input values
bindOption = getParam(bindOptionTextField, bindOption);
if (bindOption.compareToIgnoreCase("t") == 0) {
request = new BindTransmitter();
} else if (bindOption.compareToIgnoreCase("r") == 0) {
request = new BindReceiver();
} else if (bindOption.compareToIgnoreCase("tr") == 0) {
request = new BindTransciever();
} else {
System.out
.println("Invalid bind mode, expected t, r or tr, got "
+ bindOption + ". Operation canceled.");
addStatus("Invalid bind mode, expected t, r or tr, got "
+ bindOption + ". Operation canceled.");
return;
}
ipAddress = getParam(smscIDAddTextField, ipAddress);
port = getParam(smscPortTextField, port);
TCPIPConnection connection = new TCPIPConnection(ipAddress, port);
connection.setReceiveTimeout(20 * 1000);
session = new Session(connection);
systemId = getParam(systemIDTextField, systemId);
password = getParam(systemPassTextField, password);
// set values
request.setSystemId(systemId);
request.setPassword(password);
request.setSystemType(systemType);
request.setInterfaceVersion((byte) 0x34);
request.setAddressRange(addressRange);
// send the request
System.out.println("Bind request " + request.debugString());
addStatus("Bind request " + request.debugString());
if (asynchronous) {
pduListener = new SMPPTestPDUEventListener(session);
response = session.bind(request, pduListener);
} else {
response = session.bind(request);
}
System.out.println("Bind response " + response.debugString());
addStatus("Bind response " + response.debugString());
if (response.getCommandStatus() == Data.ESME_ROK) {
bound = true;
}
} catch (Exception e) {
event.write(e, "");
debug.write("Bind operation failed. " + e);
System.out.println("Bind operation failed. " + e);
addStatus("Bind operation failed. " + e);
} finally {
debug.exit(this);
}
}
/**
* Ubinds (logs out) from the SMSC and closes the connection.
*
* See "SMPP Protocol Specification 3.4, 4.2 UNBIND Operation."
*
* @see Session#unbind()
* @see Unbind
* @see UnbindResp
*/
private void unbind() {
debug.enter(this, "SMPPTest.unbind()");
try {
if (!bound) {
System.out.println("Not bound, cannot unbind.");
addStatus("Not bound, cannot unbind.");
return;
}
// send the request
System.out.println("Going to unbind.");
addStatus("Going to unbind.");
if (session.getReceiver().isReceiver()) {
System.out.println("It can take a while to stop the receiver.");
addStatus("It can take a while to stop the receiver.");
}
UnbindResp response = session.unbind();
System.out.println("Unbind response " + response.debugString());
addStatus("Unbind response " + response.debugString());
bound = false;
} catch (Exception e) {
event.write(e, "");
debug.write("Unbind operation failed. " + e);
System.out.println("Unbind operation failed. " + e);
addStatus("Unbind operation failed. " + e);
} finally {
debug.exit(this);
}
}
/**
* Creates a new instance of <code>SubmitSM</code> class, lets you set
* subset of fields of it. This PDU is used to send SMS message to a device.
*
* See "SMPP Protocol Specification 3.4, 4.4 SUBMIT_SM Operation."
*
* @see Session#submit(SubmitSM)
* @see SubmitSM
* @see SubmitSMResp
*/
private void submit() {
debug.enter(this, "SMPPTest.submit()");
try {
SubmitSM request = new SubmitSM();
SubmitSMResp response;
// input values
serviceType = getParam(serviceTypeTextField, serviceType);
sourceAddress = getAddress(sourceTonTextField, sourceNpiTextField,
sourceTextField, sourceAddress);
destAddress = getAddress(destTonTextField, destNpiTextField,
destinationTextField, destAddress);
replaceIfPresentFlag = getParam(ripfTextField, replaceIfPresentFlag);
shortMessage = messageTextPane.getText();
scheduleDeliveryTime = getParam(sdtTextField, scheduleDeliveryTime);
validityPeriod = getParam(validityPeriodTextField, validityPeriod);
esmClass = getParam(esmClassTextField, esmClass);
protocolId = getParam(protocolIdTextField, protocolId);
priorityFlag = getParam(priorityFlagTextField, priorityFlag);
registeredDelivery = getParam(regisDeliTextField,
registeredDelivery);
dataCoding = getParam(dataEncodingTextField, dataCoding);
smDefaultMsgId = getParam(sdmiTextField, smDefaultMsgId);
// set values
request.setServiceType(serviceType);
request.setSourceAddr(sourceAddress);
request.setDestAddr(destAddress);
request.setReplaceIfPresentFlag(replaceIfPresentFlag);
request.setShortMessage(shortMessage);
request.setScheduleDeliveryTime(scheduleDeliveryTime);
request.setValidityPeriod(validityPeriod);
request.setEsmClass(esmClass);
request.setProtocolId(protocolId);
request.setPriorityFlag(priorityFlag);
request.setRegisteredDelivery(registeredDelivery);
request.setDataCoding(dataCoding);
request.setSmDefaultMsgId(smDefaultMsgId);
// send the request
int count = 1;
System.out.println();
count = getParam(timesSubmitTextField, count);
for (int i = 0; i < count; i++) {
request.assignSequenceNumber(true);
System.out.print("#" + i + " ");
addStatus("#" + i + " ");
System.out.println("Submit request " + request.debugString());
addStatus("Submit request " + request.debugString());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -