3
accept()
機能によってブロックまたは非ブロックモードでソケット記述子が返されますか?ソケットaccept()は、ディスクリプタのブロックまたはノンブロッキングを返しますか?
accept()
機能によってブロックまたは非ブロックモードでソケット記述子が返されますか?ソケットaccept()は、ディスクリプタのブロックまたはノンブロッキングを返しますか?
いいえ、ソケットはリッスンソケットからノンブロッキングステータスを継承しません。あなたは自分自身を非妨害にしなければなりません。 man 2 accept
から
:
int accept4(int sockfd, struct sockaddr *addr,
socklen_t *addrlen, int flags);
そして、さらに下:
If flags is 0, then accept4() is the same as accept(). The following
values can be bitwise ORed in flags to obtain different behavior:
SOCK_NONBLOCK Set the O_NONBLOCK file status flag on the new open
file description. Using this flag saves extra calls to
fcntl(2) to achieve the same result.
をこのように、私は、ソケット記述子がブロックモードであることを)(受け入れるから返さ期待されます。
MSDNによると:「新しく作成されたソケットは、 'WSAEventSelect'関数で登録された非同期イベントを含む、実際の接続を処理し、ソケット' s'と同じプロパティを持ちます。リスニングソケット –
@ RemyLebeau-TeamBはい、しかし、それは明示的にノンブロッキング状態に言及していないので、私はまだ新しいノンブロッキングノンブロッキングを安全側にするでしょう。 –