5

この方法で recvfrom() の戻り値を確認し
while ((n = recvfrom(sockfd, buf, BUF_SIZE, 0, NULL, NULL)) > 0)
ます。送信者のソケットを閉じようとしますが、recvfrom() はまだブロックされます。マニュアルによると、ピアが正常なシャットダウンを実行した場合、recvfrom() は 0 を返します。UDP ソケットをシャットダウンしても意味がありませんよね?
どんな答えでも大歓迎です。どうも。

4

1 に答える 1

7

の戻り値recvfromは、受信したデータグラム内のユーザー データの量です。UDPの戻り値0は許容されます。長さ 0 のデータグラムの書き込みは許容されるため、ピアが接続を閉じたことを意味するわけではありません。

于 2013-10-24T02:45:28.493 に答える