2011-11-08 7 views

答えて

4

いいえ、ソケットはリッスンソケットからノンブロッキングステータスを継承しません。あなたは自分自身を非妨害にしなければなりません。 man 2 acceptから

+0

MSDNによると:「新しく作成されたソケットは、 'WSAEventSelect'関数で登録された非同期イベントを含む、実際の接続を処理し、ソケット' s'と同じプロパティを持ちます。リスニングソケット –

+0

@ RemyLebeau-TeamBはい、しかし、それは明示的にノンブロッキング状態に言及していないので、私はまだ新しいノンブロッキングノンブロッキングを安全側にするでしょう。 –

5

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. 

をこのように、私は、ソケット記述子がブロックモードであることを)(受け入れるから返さ期待されます。

関連する問題