-1

ioctl() を使用して、ソケット プログラムでバッファ内の文字数を読み取ります。ただし、バッファの読み込みが遅れると、ioctl() によってメッセージの終わりとして誤って解釈されることがあります。着信メッセージの長さを知るために ioctl() を使用する場合、どうすればこれを回避できますか。また、受信するメッセージのサイズがわからないため、静的バッファー recv() で受信することはできません。

ありがとう、マノジ

4

1 に答える 1

3

メッセージのメッセージ サイズ部分を、できれば先頭のバイトにします。つまり、残りのメッセージの最初の 2 バイト サイズを作成します。このようにして、2バイトの読み取りが完了するまで待機する必要があることがわかります-その後、メッセージのサイズを読み取ります。

于 2011-11-03T02:33:50.223 に答える