0

SMPP プロトコルを使用して SMS メッセージを生成および送信できるクライアントがあります。クライアント側の宛先アドレスとユーザー、パスワードを設定できます。

クライアント側から(SSLなしで)メッセージを受信し、結果をファイルに書き込む非常に単純なサーバー(リスナー)を作成したいと思います。このトピックに関する記事をたくさん見つけましたが、役に立ちませんでした。

この問題を解決するための最良の方法を提案できますか?

4

1 に答える 1

1

これは非常に簡単な方法です。クライアントがあるので、バイトを 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();
}

さらに防弾コードが必要な場合は、サーバーが受け入れた後、サーバーが別の接続を受け入れている間、個別に実行されるワーカー スレッドを作成します。

于 2021-08-17T21:55:07.257 に答える