3

CFSocket API がソケットからデータ コールバックにバイトを読み取る方法を知っている人はいますか? 最初は、送信されたのと同じ長さでデータを常に返すために「内部」の作業を行うと思っていましたが、いくつかのテストの後、大量のデータをすばやく送信するとデータがチャンクで返されることがわかったので、ヘッダーを使用して自分でパケットを解析します。

これまでのテストでは、部分的なデータを受信して​​いません (つまり、1000 バイトを送信した場合、データ コールバックで常に 1000 を取得しますが、それ以下になることはありません) が、バッファが本当にいっぱいになると、これが発生する可能性があり、パケットを再構築する必要があると思います。それらが不完全だった場合。

基本的に、BSDソケットで使用するのと同じパケット読み取り戦略をCFSocketで使用する必要がありますか?つまり、各パケットに長さを含むヘッダーをプレフィックスし、ストリームをパケット長まで解析し、コールバック時にパケットが不完全だった場合はデータを再結合します再び呼び出されます。

ありがとう!

4

0 に答える 0