現在、バイナリデータコマンドをデバイスパネルに送信するJavaクライアントに取り組んでいます。ソケット接続ごとに1つのコマンド(1つのTCPセッション)を送信すると、すべてのコマンドが正常に機能するという奇妙な問題が発生しています。しかし、1つの接続(同じTCPセッション)で複数のコマンドを送信すると、最初のコマンドはデバイスパネルで完全に実行されますが、2番目のコマンドでは値0x01
と。を含む2バイトが追加されます0x00
。それは奇妙で、私はここ数日試みてきましたが、答えを見つけることができませんでした。
私のコード:
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
sslsocket = (SSLSocket) sslsocketfactory.createSocket(deviceIP, port);
//Output Streams
OutputStream outputStream = sslsocket.getOutputStream();
outputStream.write(command1);
outputStream.write(command2);
command1
とcommand2
はバイト配列であることに注意してください。
- command1の値=01,01,01
- command2の値=01,34,45,34,56
デバイスパネルのログは次のとおりです。
Received command: 01 01 01
Received command: 01 00 01 03 45 34 56
何が問題なのですか?あなたの提案は高く評価されます。