我正在將腳本中的套接字連接更改爲非阻塞連接。在教程中,我發現了以下幾行:使用非阻塞套接字連接C
x=fcntl(s,F_GETFL,0); // Get socket flags
fcntl(s,F_SETFL,x | O_NONBLOCK); // Add non-blocking flag
所以我在創建套接字之後並在連接語句之前添加了它們。它不再阻止:)但它也沒有連接。我沒有收到任何錯誤,連接只是返回-1。如果我將這些線註釋掉,它就會連接。
我還需要添加什麼來獲得非阻塞連接才能連接?
嗯,這裏有什麼意思?它與* blocking *'connect'有什麼不同? –
@NikolaiNFetissov公平點,我編輯了我的答案,刪除代碼片段作爲潛在的誤導,並強調使用TEMP_FAILURE_RETRY – simonc