私のプログラムでは、pc が Android フォンに継続的にデータを送信します。毎回 pc は 62 バイト (ヘッド用に 24 バイト、コンテンツ用に 38 バイト) を送信します。私のプログラムはうまく動きます。しかし、私の電話では、ヘッドが 24 バイト、コンテンツが 10 バイトしか読み取れないことがあります。
非ブロック ソケットチャネル経由でデータを受信します。
private SocketChannel client = null;
public int read(byte[] data,int offset, int len){
try {
ByteBuffer buffer = ByteBuffer.allocate(len);
int read_len = client.read(buffer);
if(read_len == 0){
}else if(read_len == -1){
}else{
buffer.flip();
buffer.get(data, offset, read_len);
}
return read_len;
} catch (IOException e) {
e.printStackTrace();
}
return -2;
}
どうすればこの問題を解決できますか?