SMPP プロトコルを使用して SMS メッセージを生成および送信できるクライアントがあります。クライアント側の宛先アドレスとユーザー、パスワードを設定できます。
クライアント側から(SSLなしで)メッセージを受信し、結果をファイルに書き込む非常に単純なサーバー(リスナー)を作成したいと思います。このトピックに関する記事をたくさん見つけましたが、役に立ちませんでした。
この問題を解決するための最良の方法を提案できますか?
これは非常に簡単な方法です。クライアントがあるので、バイトを SMPP パケットにエンコード/デコードする方法があると思います。
public void runServer() throws Exception
{
ServerSocket serverSocket = new ServerSocket(6868);
Socket socket = serverSocket.accept();
while (socket.isBound()) {
byte[] bytes = readBytes(socket.getInputStream()) ;
- encode bytes to smpp
- create smpp response and decode to bytes
socket.getOutputStream().write(bytes);
socket.getOuptutStream().flush();
}
socket.close();
serverSocket.close();
}
private byte[] readBytes(InputStream is) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i ;
while ((i=is.read()) != -1) baos.write(i);
return baos.toByteArray();
}
さらに防弾コードが必要な場合は、サーバーが受け入れた後、サーバーが別の接続を受け入れている間、個別に実行されるワーカー スレッドを作成します。