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

📄 smppclient.java

📁 This is my first class to beginning with smpp. This is a smpp client with visual (not console as SMP
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	 * @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 + -