這個普遍的主題已經出現之前,here, here, here,毫無疑問在互聯網上的其他地方。在我的情況下,不像這些,掛起來源於阻塞的套接字,從來沒有得到消息,也許這就是爲什麼那裏描述的解決方案沒有爲我工作。我正在開發一個C++應用程序,它通過本地套接字連接與php腳本進行通信,當C++應用程序崩潰時,它將留下php腳本的套接字等待一個永遠不會到來的消息。我試過使用session_destroy和session_unset(在session_start之前在腳本中首先調用它們),但它們不起作用;即使退出並重新啓動瀏覽器也無濟於事。我只能停止會話,如果我刪除session_start,重新加載腳本,然後通過客戶端結束會話。我怎樣才能殺掉這個會話而不必經過那個?如何殺死一個PHP會話?
編輯:我忘記說了,我也試圖時間插座出與
socket_set_option($socket,0, SO_RCVTIMEO, array("sec"=>1, "usec"=>0));
但我得到了一個「非法操作」的錯誤,並沒有奏效。
編輯2:設置手動超時,在提示here之後,運行良好。一般來說,我仍然不知道如何殺死例如陷入無限循環,但是哦。
好吧,現在值1我不知道,什麼問題是:) – levu 2011-04-24 16:15:19
@levu它看起來像該選項甚至沒有設置。你不能爲本地套接字設置SO_RCVTIMEO嗎?我沒有看到我的語法有什麼問題。作爲協議socket_create的協議'0'。 – 2011-04-24 16:51:11