ゼロバイトを返す接続されたソケット上の()関数を読むことができますか?
-
19-09-2019 - |
質問
私は(その読み取りを知っている)私はソケット非ブロックにする場合を除き、ブロッキング呼び出しです。だから私は、正の値を返す必要があり、データの4K(バイトなしで読み)を要求()の呼び出しエラーの場合は-1(クライアントなどによって可能な接続リセット)を読んで期待しています。私の質問は次のとおりです。あらゆる機会に()の戻り、「0」を読んですることはできますか?
私は、読み取り()をこのように扱ういます:
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
このコード爆弾を読んでいる場合()は0を返し、私はそれを修正する方法を知っています。しかし、それは)(読み取り可能であるゼロを返すには?
解決
TCP接続は反対側のリターンに片面読み取り()で閉じられているとき0バイト
所属していません StackOverflow