- PR -

tomcatにバイナリデータを送りたい

投稿者投稿内容
トム
常連さん
会議室デビュー日: 2005/11/22
投稿数: 32
投稿日時: 2006-12-08 01:03
私のとりあえずの解決策としてですが、
クライアントはURLConnectionで通信路を確保し、OutputStream/InputStreamをgetして、
write(byte[])等でバイトデータを送ります。

サーブレットの方は、Httpリクエスト/レスポンスからOutputStream/InputStreamをgetして、read(byte[])して、すぐにwrite(byte[])します。

クライアントで受信するときは、read(byte[])します。

read()したときのデータとwrite()したときのデータを比べて、
同じであれば成功です。

データは、
byte[] data = new byte[BUFSIZE];
for(int i = 0; i < BUFSIZE; i++){
  data[i] = (byte)i;
}
等でバッファ分作成しておいて使いました。

クライアント側のwrite(), read()は実際には、
int len = DATASIZE; //DATASIZE(送りたいデータサイズ)
while(len > 0){
  l = (len < BUFSIZE) ? len : BUFSIZE;
  write(data, 0, l);
  len -= l;
}
等で送りました。
受信時も同様です。

スキルアップ/キャリアアップ(JOB@IT)