0

これで、端末間で画像が送信されます。クライアントは画像をバイトストリームに変換してからサーバーに配信します。サーバーは、人を送信し、データを端末に送信することを検出します。次に、LANの2ステーションシミュレータで全体像を送信します。送受信に問題はありません。ネットワークサーバーにデプロイされたサーバーは、コードを受け取ります。

int length = 0;
int totalNum = 0;
byte[] buffer = new byte[1024];
while ((length = dis.readInt()) != 0) {
    length = dis.read(buffer, 0, length);
    System.out.println("length :-------->" + length);

    totalNum += length;
    out.writeInt(length);
    out.write(buffer, 0, length);
    out.flush();
}
System.out.println("totalNum:-------->" + totalNum);
out.writeInt(0);
out.flush();
Debug.info("totalNum::::" + totalNum);
initService.getEnterpriseMsgService().save(msg);

毎回1024バイトを受信します。時々System.out.println("length :-------->" + length);それはnullです。エミュレータの送受信データは毎回一貫しています。全体像を送る場合は問題ありません。コードの問題なのかサーバーの問題なのかわかりません。

解決策を求めます。前もって感謝します。

4

2 に答える 2

0

この方法を試してみませんか:

InputStream is //your InputStream
OutputStream out //your OutputStream
byte[] buffer = new byte[1024];
int length = 0;
try {
    while ((length = is.read(buffer)) > 0) {
        out.write(buffer, 0, length);
    }

} catch (Exception e) {
    // TODO: handle exception
}
于 2012-12-24T08:21:45.813 に答える
0

画像を送受信する場合バッファサイズを大きくする必要があります

byte[] buffer = new byte[4096];
于 2012-12-24T08:19:20.733 に答える