簡體   English   中英

如何在Linux C中保持無效的TCP連接?

[英]how to maintain a inactive TCP connection in linux C?

TCP客戶端是否與TCP服務器建立TCP連接。 然后,TCP客戶端永遠不會將任何數據包發送到服務器。

首先,我大致知道TCP服務器附近的防火牆可能會向其發送RST。 或存在保持連接超時以強制結束TCP連接。 但是我不知道會發生什么?有人可以解釋一下嗎?

第二,是否可以維持此TCP連接,除非我希望終止該連接?

我只是希望TCP服務器可以將此TCP連接保留在其TCP堆棧上。 但是我不希望涉及TCP客戶端,也不希望客戶端發送KEEP-ALIVE消息。 我不希望任何其他第三方實體參與。 我不在乎TCP客戶端是否丟失連接。 我只是希望當我編寫TCP服務器的源代碼時,這些源代碼可以設法維護服務器上的TCP連接。

注意:我的編程語言是LINUX C

謝謝!

如果在終端啟用了keepalive,它將發送定期探測,如果沒有應答,則您的終端將重置連接。 默認情況下,Keepalive處於關閉狀態,因此,如果您未在最后啟用它,則不會從您的結尾開始。

但是,同級端仍可以在其末端啟用它,在這種情況下,其末端將具有上述行為,並且您既無法阻止也無法檢測到它。

其余的問題沒有道理。 出於多種原因,客戶端或防火牆可以隨時發送RST。 您不能阻止這種情況,也不能在代碼中忽略它。 如果由於某種原因在任何地方進行了連接重置,則無需維護任何連接。

如果您不想要TCP,請使用其他東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM