|
SMS küldés és fogadás JAVA programnyelvben
Ezen az oldalon néhány példát fog találni
arra, hogyan küldhet és fogadhat SMS üzenetet JAVA programnyelvben az Ozeki NG
SMS Gateway segítségével. A bemutatott példák segítségére lehetnek abban, hogy
megtalálja az Önnek legmegfelelőbb SMS küldési módot JAVA programnyelvet
használva.
SMS küldés és fogadás JAVA programnyelvből adatbázis használatával
Ha egy olyan SMS megoldást keres, amely pontosságot,
biztonságos működést és kitűnő hatékonyságot biztosít akkor az adatbázison
alapuló JAVA megoldás a lehető legjobb választás az Ön számára. Az SMS küldés
és fogadás szempontjából ez a megoldás egy adatbázis server használatára épül
(úgy, mint Oracle, MySQL, Java DB, MS SQL, stb). Ez a megoldás ajánlott, ha a
Java alkalmazása már eredetileg is egy adatbázist használ az adatok tárolására.
Ábra 1 - SMS küldés és fogadás Java-ból adatbázison keresztül.
Az 1. ábra illusztrálja a megoldás működését. Ha SMS-t akar
küldeni, akkor az üzenetet el kell mentenie egy külön erre a célra létrehozott
adatbázis táblába. A telepített SMS szoftver rendszeresen ellenőrzi ezt az
adatbázis táblát. Ha talál még el nem küldött üzenetet, akkor kiküldi őket a
megfelelő címzetteknek, majd frissíti a bejegyzések állapotát. Ezáltal mindig
tudhatja, hogy üzenetét elküldte-e a rendszer vagy sem. Az üzenet fogadás
hasonlóan működik. A bejövő üzenetek egy erre a célra létrehozott adatbázis
táblába kerülnek. A Java alkalmazása ellenőrzi, hogy van-e új bejövő üzenet.
Ezen megoldás nagy előnye, hogy az üzenetei automatikusan tárolódnak, így Ön
könnyen felügyelheti és nyomon követheti kimenő és bejövő üzenetei státuszát.
A megoldás megvalósítása a következő egyszerű lépésekből áll: miután telepítette
a szükséges alkalmazásokat (Java és adatbázis), létre kell hoznia két adatbázis
táblát az adatbázisban. Egyet a bejövő üzenetek számára (ozekimessagein) és
egyet a kimenő üzenetek számára (ozekimessageout). Ez után telepítenie és
konfigurálnia kell az Ozeki NG SMS Gateway szoftvert, hogy támogassa ezt a
megoldást.
A megoldás telepítése során szüksége lesz az alábbi fájlra: java-sms-example-db-with-source.zip
Forráskód példa:
package hu.ozeki;
import java.sql.*;
public class Java_example_db_insert {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Statement smnt = null;;
String dbHost = "localhost";
String database = "ozeki";
String dbUsername = "ozekiuser";
String dbPassword = "ozekipass";
String smsReceiver = "+441112222222";
String message = "Hello world, this is my first SMS message";
String dbUrl = "jdbc:mysql://"+ dbHost +"/" + database +"";
Connection conn = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
smnt = conn.createStatement();
String sqlInsert =
"INSERT INTO "+
"ozekimessageout (receiver,msg,status) "+
"VALUES "+
"('" + smsReceiver + "','"+ message +"','send')";
if(smnt.executeUpdate(sqlInsert) != 0)
{
System.out.println("OK");
}
else
{
System.out.println("ERROR");
}
smnt.close();
conn.close();
}
catch(Exception ex)
{
System.out.println("Exception: " + ex.getMessage());
}
}
}
|
A következő részleteket kell megváltoztatnia: dbHost, database, dbUsername,
dbPassword. Továbbá változtassa meg a telefonszámot és az üzenet szövegét arra,
amit szeretne elküldeni.
SMS küldés és fogadás Java-ból HTTP használatával
Ez a megoldás ideális azoknak a fejlesztőknek, akik a HTTP
kéréseket részesítik előnyben SMS küldés céljából. Mivel a Java alkalmazások
beépített HTTP funkcióval rendelkeznek, ez a megoldás egy egyszerű és hatékony
módja az üzenetek továbbításának a mobil hálózatba. A HTTP kérések esetében
lehetőség van titkosított csatorna használatára (HTTPS), így nemcsak nagy
teljesítményt, de magas biztonsági szintet is elérhet ezzel a megoldással.
Egy telepített SMS szoftver segítségével könnyen küldhet SMS üzenetet mobil
készülékekre, illetve SMS-t fogadhat mobiltelefonról a számítógépén. Ehhez az SMS
üzeneteket HTTP kérések segítségével tudja eljuttatni az SMS szoftverbe, amely
feldolgozza és kiküldi az Ön üzeneteit (Ábra 2). Az ábrán látható, hogy a Java
alkalmazás az üzenetet közvetlenül az SMS szoftvernek küldi HTTP kérés (HTTP
request) segítségével. A bejövő üzenetek esetében a következő folyamatok lehetségesek:
A Java alkalmazás időközönként ellenőrzi, hogy van-e bejövő üzenet, ha igen,
akkor letölti azt; vagy ha képes bejövő HTTP kérést fogadni, akkor az SMS
szoftver a telepített HTTP kliens segítségével továbbküldi a bejövő üzenetet
a Java alkalmazásnak HTTP-n keresztül.
Ábra 2 - SMS küldés és fogadás Java-ból HTTP-n keresztül.
A megoldás alkalmazásához telepíteni kell az Ozeki NG SMS
Gateway-t és be kell konfigurálnia erre a funkcióra. Ezt úgy teheti meg, ha telepít
és beállít egy HTTP felhasználót a szoftverben. Amikor létrehozza ezt a
felhasználót, meg kell adnia egy felhasználó nevet és jelszót az új felhasználónak.
Ezt a megadott jelszót és felhasználónevet helyettesítse be az alábbi
forráskódban.
A megoldás implementálása során szüksége lesz a következő fájlra: send-sms-java-http.zip
Forráskód példa
package hu.ozeki;
import java.net.*;
public class Java_example_httprequest {
public static void main(String[] args) {
try {
String recipient = "06205555555";
String message = "Hello World";
String username = "admin";
String password = "abc123";
String originator = "06201234567";
String requestUrl = "http://127.0.0.1:9501/api?action=sendmessage&" +
"username=" + URLEncoder.encode(username, "UTF-8") +
"&password=" + URLEncoder.encode(password, "UTF-8") +
"&recipient=" + URLEncoder.encode(recipient, "UTF-8") +
"&messagetype=SMS:TEXT" +
"&messagedata=" + URLEncoder.encode(message, "UTF-8") +
"&originator=" + URLEncoder.encode(originator, "UTF-8") +
"&serviceprovider=GSMModem1" +
"&responseformat=html";
URL url = new URL(requestUrl);
HttpURLConnection uc = (HttpURLConnection)url.openConnection();
System.out.println(uc.getResponseMessage());
uc.disconnect();
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
|
|
SMS küldés és fogadás Java-ból Ozeki Java SMS SDK használatával
A legpraktikusabb és legjobb mód az SMS küldésre Java-ból, ha
az Ozeki Java SMS SDK-t használja. Ez az SDK biztosít egy programkönyvtárat,
amely TCP/IP socket segítségével kommunikál az SMS szoftverrel. Ez a megoldás
azért olyan kiváló, mert gyors és hatékony működést eredményez, továbbá
lehetővé teszi az aszinkronikus eseménykezelést. Ez azt jelenti, hogy képes
Önt informálni a kézbesítési jelentésekről és a bejövő üzenetekről egyaránt. A
3. ábra bemutatja, hogyan működik ez a megoldás. Az SMS üzenetek TCP kapcsolaton
keresztül az Ozeki NG SMS Gateway-nek továbbítódnak. Az SMS szoftver egyenesen
a mobil hálózatnak továbbítja az üzeneteket, és TCP csatornát használ a
kézbesítési jelentések küldéséhez a Java alkalmazás számára.
Ábra 3 - SMS küldés és fogadás Java-ból Ozeki Java SMS SDK-n
keresztül.
A megoldás alkalmazásához töltse le a következő fájlokat:
ozeki-java-sms-sdk.zip
OzekiSmsClient.jar
Forráskód példa
//MyOzSmsClient.java
package hu.ozekisms;
import java.io.*;
import java.util.*;
import hu.ozeki.*;
public class MyOzSmsClient extends OzSmsClient{
public MyOzSmsClient(String host, int port) throws IOException, InterruptedException {
super(host, port);
// TODO Auto-generated constructor stub
}
@Override
public void doOnMessageAcceptedForDelivery(OzSMSMessage sms) {
Date now = new Date();
System.out.println(now.toString() + " Message accepted for delivery. ID: " +
sms.messageId);
}
@Override
public void doOnMessageDeliveredToHandset(OzSMSMessage sms) {
Date now = new Date();
System.out.println(now.toString() + " Message delivered to handset. ID: " +
sms.messageId);
}
@Override
public void doOnMessageDeliveredToNetwork(OzSMSMessage sms) {
Date now = new Date();
System.out.println(now.toString() + " Message delivered to network. ID: " +
sms.messageId);
}
@Override
public void doOnMessageDeliveryError(OzSMSMessage sms) {
Date now = new Date();
System.out.println(now.toString() + " Message could not be delivered. ID: " +
sms.messageId + " Error message: " + sms.errorMessage + "\r\n");
}
@Override
public void doOnMessageReceived(OzSMSMessage sms) {
Date now = new Date();
System.out.println(now.toString() + " Message received. Sender address: " +
sms.sender + " Message text: " + sms.messageData);
}
@Override
public void doOnClientConnectionError(String errorCode, String errorMessage) {
Date now = new Date();
System.out.println(now.toString() + " Message code: " + errorCode +
", Message: " + errorMessage);
}
}
//TestTcpSms.java
package hu.ozekisms;
import java.io.*;
import java.util.Scanner;
public class TestTcpSms {
/**
* @param args
*/
public static void main(String[] args) {
try {
String host = "localhost";
int port = 9500;
String username = "admin";
String password = "abc123";
MyOzSmsClient osc = new MyOzSmsClient(host, port);
osc.login(username, password);
Scanner sc = new Scanner(System.in);
String line = new String();
System.out.println("SMS message:");
if(osc.isLoggedIn()) {
while((line = sc.nextLine()).length() > 0)
osc.sendMessage("+001122334455", line);
osc.logout();
}
} catch (IOException e) {
System.out.println(e.toString());
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
}
|
Amennyiben szeretné alkalmazni ezt a megoldást
vállalati rendszerében, látogassa meg termékoldalunkat,
ahol letöltheti az Ozeki NG SMS Gateway szoftvert.
|