国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

\stream_socket_client $flag STREAM_CLIENT_ASYNC_CONNECT 和 STREAM_CLIENT_CONNECT 區(qū)別是什么?

meows
        $this->_socket = \stream_socket_client("{$this->transport}://{$this->_remoteAddress}", $errno, $errstr, 0,
            \STREAM_CLIENT_CONNECT);
  1. 上面的代碼會報錯,如果設置為 STREAM_CLIENT_ASYNC_CONNECT 連接超時0 就不會報錯。
    請問這是為什么???
3057 1 0
1個回答

phpcreeper
  1. 首先要區(qū)分清楚socket超時概念,一個是指連接超時,另一個是指數(shù)據(jù)傳輸超時; 而stream_socket_client()函數(shù)的最后兩個參數(shù)都是針對TCP連接階段這個生命周期而言的;
  2. 顧名思義最后的位參: STREAM_CLIENT_CONNECT 和 STREAM_CLIENT_ASYNC_CONNECT, 前一個表示發(fā)起同步TCP連接,此時$timeout參數(shù)配套生效,表示最大經過$timeout秒之后要是建立連接失敗或者發(fā)生意外,那么就會報告系統(tǒng)級的錯誤,錯誤信息保存在($errno, $errstr);后一個剛好相反,表示發(fā)起異步連接,這時底層connect()會立即返回并不會報錯(此時$timeout參數(shù)沒啥用),所以之后一旦連接句柄異常,那么讀寫數(shù)據(jù)照樣會報錯,讀寫超時通過stream_socket_timeout()控制。
年代過于久遠,無法發(fā)表回答
??