受信したデータソケットの長さを取得する方法

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/weixin_37758967/article/details/98849587

ネットワークポートからデータを取得する必要があり、最近のアイテムは、その後、ソケットから取り出して、バイト[]の中に置かれ、受信したデータは、文字列ではありません
バイト[] BUF =新しいバイトを使用して、[開始 100] ;ように事前に定義された長さは、長さが長すぎるより多くの後に0ではなく、コントロールの長さにつながる可能性があります。

そして、見つけるためにインターネットのいずれかから、100を定義し、長さを知った後、長さを読んだ後に再定義が、結果はデー​​タだけをしようとして後に発見されていない、それがデータであり、

エラーが発生しました。

byte[] buf=new byte[100];
int len=socket.getInputStream().read(buf);
byte[] buf1=new byte[len];
socket.getInputStream().read(buf1);

Socket.getInputStream(へ終わりに)次のように、利用可能な方法()ストリームのサイズクラスを取得します。

リスト<のInputStream> inputList =新しいのArrayList <のInputStream>(); 
= c_Socket.getInputStreamに入力ストリーム(); 
inputList.add(中)
バイト[] B =新しいバイト[inputList.get(I).available()]。
INT I = inputList.get(I).read(B)。

 

 

 

おすすめ

転載: blog.csdn.net/weixin_37758967/article/details/98849587