如何在死前關閉套接字? 我有一個服務在Linux上創建一個TCP服務器。有時我必須重新啓動它,我希望套接字真的關閉。目前它掛起。 我也知道SIGKILL無法處理。 任何人都可以指向正確的方向嗎?C++:如何在收到SIGKILL時關閉tcp套接字(服務器)
1
A
回答
4
插座將被關閉 - 操作系統將自動執行此操作,請參閱:Using SO_REUSEADDR - What happens to previously open socket?
,而不是試圖處理SIGKILL,這是行不通的,在開始解決問題:
使用SO_REUSEADDR
套接字選項,它允許您立即重用端口。
0
你不能對SIGKILL做任何事情。您應該嘗試處理SIGTERM和/或SIGINT來終止您的服務並關閉套接字。
沒有必要發送SIGKILL除非
- 應用忽略SIGTERM和SIGINT
- 系統確實需要終止立即申請
當你要重新啓動你的服務,你應該送SIGTERM或SIGINT而不是SIGKILL。
+0
好吧,我添加一個處理程序到SIGINT(SIGTERM處理尚未)。我使用從新手重啓以停用並重新激活服務器。 – JosephITA
相關問題
- 1. 如何在等待連接時關閉服務器套接字?
- 2. C/Linux TCP套接字服務器
- 3. 服務器端的C++服務器代碼關閉套接字
- 4. 多線程TCP服務器:java.net.SocketException:套接字關閉
- 5. 如何關閉在C#中的TCP套接字連接
- 6. 如何在關閉服務器套接字時阻止應用程序關閉。
- 7. 如果套接字未被服務器斷開/關閉,如何將套接字重新連接到服務器?
- 8. 服務關閉時收到
- 9. TCP服務器關閉連接
- 10. 在C中的Linux套接字編程,服務器套接字不能關閉
- 11. 如何處理服務器關閉TCP
- 12. TCP服務器不關閉,
- 13. Ruby TCP服務器關閉
- 14. 無法關閉異步C#服務器套接字連接
- 15. 如何在異常時關閉Mule TCP套接字?
- 16. Java套接字服務器僅顯示連接關閉後收到的消息
- 17. 如何用C++/QT中的TCP服務器套接字創建Http服務器
- 18. C#套接字TCP客戶端/服務
- 19. 同時關閉服務器和客戶端套接字連接
- 20. java.net.SocketException:套接字已關閉TCP連接
- 21. 將Java TCP服務器與C#TCP套接字連接到Windows 7中
- 22. 一次性關閉套接字連接=假彈簧集成TCP服務器
- 23. Java套接字 - 關閉到服務器套接字的telnet客戶端連接
- 24. 當代理服務器關閉時,網絡套接字連接關閉
- 25. TCP Python套接字服務器響應
- 26. Python:異步TCP套接字服務器
- 27. TCP套接字凍結服務器
- 28. 與TCP套接字(服務器)通信
- 29. TCP套接字(服務器)設計
- 30. tcp套接字服務器不發送
非常感謝。我補充說: 'int optval = 1; setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof optval);' – JosephITA