スクリプト内のソケット接続を非ブロッキング接続に変更しています。チュートリアルでは、私は次の行を見つけました:Cで非ブロッキングソケット接続を使用する
x=fcntl(s,F_GETFL,0); // Get socket flags
fcntl(s,F_SETFL,x | O_NONBLOCK); // Add non-blocking flag
私はソケットを作成してconnectステートメントの前に追加しました。それはもはやブロックしていない:)しかし、それはまた接続しません。私はエラーを取得していない、接続はちょうど-1を返しています。私がこれらの行をコメントアウトすると、それは接続します。
ノンブロッキング接続で接続するには、ほかに何が必要ですか?
ここでポイントは何ですか? * blocking * 'connect'とどう違うのですか? –
@NikolaiNFetissov Fair point、私は、コードスニペットを誤解を招く可能性があると判断して削除し、TEMP_FAILURE_RETRYの使用を強調する答えを編集しました – simonc