私は c でプロキシを実装しており、I/O でブロックしないように select() を使用しています。プロキシに接続しているクライアントが複数あるため、サーバーからの応答メッセージをどのソケットに転送するかがわかるように、メッセージにソケット記述子 # を含めます。
ただし、read() がヌル文字までの完全なメッセージを受信せず、select() の次のラウンドで残りのメッセージを送信することがあります。応答を転送するソケットがわかるように、メッセージ全体を一度に受信したいと思います (複数のクライアントがある場合、どのメッセージがどのソケットに属しているかがわからないため、バッファリングは機能しません)。null 文字が到着するのを待っている間に読み取りをブロックせずにこれを行う方法はありますか?