サーバー画面をクライアントにブロードキャストするためのサーバーcientプログラム(java)があります。画像をバイト配列に変換し、それをクライアントに送信します。最初のバイト配列がクライアントによって送信および受信された後、複数のバイト配列の送信に問題があり、2 番目のバイト配列でエラーが発生します。サーバー側には次のコードがあります。
imageInByte=baos.toByteArray();
outToClient.writeInt(imageInByte.length);
System.out.println(Integer.toString(imageInByte.length));
これは、入ってくるバイト配列のサイズをクライアントに伝えます。クライアントには、次のコードがあります。
int c = inFromServer.readInt();
System.out.println(Integer.toString(c));
これはすべて問題なく、サーバーで推定されるサイズは、クライアントが受信して出力するサイズですが、実際にバイト配列をデータ出力ストリームに書き込もうとすると、クライアントが受信するバイト配列は「 .length" 推定。
たとえば、最初のバイト配列は 118207 と言われます (実際のバイト配列は送信されません。
次に、最初のバイト配列をクライアントに送信しようとすると、クライアントはそれを 118207 として受け取ります。
実際に配列を書き込もうとしない2番目のものは126205でしたが、オブジェクトを書き込もうとするとサイズは-2555936です
3 番目は 125709 であるはずですが、クライアントでは 1229324289 バイトとして出力されます。
これは私を夢中にさせており、次の木曜日に予定されているプロジェクトがあり、これを整理せずに続行することはできません. これが奇妙なレイアウトであるか、私を理解していない場合は、質問してください。ありがとうございます。