31. Nio (セレクター (メッセージ境界問題 (つまり、ハーフパッケージスティッキーパッケージ問題)))

Nio (セレクター (メッセージ境界問題 (つまり、ハーフパッケージスティッキーパッケージ問題)))

ステップ 1: 読み取りイベント Bytebuffer (このデータをバッファーに読み取ります (後でバッファーの内容を出力します)) のサイズを非常に小さく設定します。そして、文字列を通じてバッファの内容を出力します

Charset.defaultCharset().decode(バッファ)

 

ステップ 2: クライアントは情報を送信します (バッファーの内容はバッファーより小さい場合は問題ありませんが、超えると文字化けします)

 

 

ステップ 3: クライアントはバッファ サイズを超えるデータを送信します。(メッセージ境界) ここで、中国語の文字は Utf-8 であるため、3 バイトに解析されます (ここでは 6 バイト)。サーバーは最初に 4 バイトを読み取り、次に 2 バイトを読み取ります。(国は分裂した)

 

おすすめ

転載: blog.csdn.net/logtcm4/article/details/127820997