TCPソケットを介して非同期でデータを送信しています。私は現在、ローカルコンピューターでSMSCシミュレーターに接続しており、本物に接続する前に、すべてのパケットが正しく作成されていることを確認しています。
PDUを1回だけ送信し、SMSCはそれを完全に受信し、応答PDUを生成して送り返しますが、その後、100個のメッセージを受信できないことを示すエラーメッセージがシミュレーターにポップアップ表示されます。問題は、一度だけ送信すること、メッセージを絶えず送信するループが実行されていないこと、そして一度だけ送信することをデバッグして確認したことです。
問題はPDUの作成にあるのではないかと思います。まず、サイズ1024のバイト配列を作成し、必要に応じて入力します。いっぱいになると、配列のスペース全体を使用しません。したがって、シミュレータがそれを受信すると、配列からデータを取得し、実際のデータの後に配列の「0」バイトを新しいメッセージとして読み取ると考えています。これは、データを示す応答メッセージが表示されるためです。有効ではない。
これを回避する方法はありますか、それともここで何かが足りないだけですか?私によると、バイト配列で値を受け取るときは、データを取得するために必要なエンコーディングのみを使用する必要があり、残りの「0」バイトは無視する必要がありますか?
質問が曖昧な場合は申し訳ありません。