socket 如果不關閉會自動關閉嗎?為什麼要心跳連線?
1樓:網友
這取決於你的server端的超時配置, 每個socket連線都是長連線,它是乙個相當佔用系統資源的通訊管道, 如果這個長連線什麼事也沒幹硬是要佔著資源,則server端可以選擇關閉這個連線,以省下資源讓更多的使用者連線進來。
所以,即便客戶端的是採用死迴圈while(true)方式連到服務端,對於特定的客戶端和服務端型別來說也需要一定時間間隔的心跳(告訴服務端,我還活著,雖然我沒幹活也沒說話,但別把我關了)。
我記得以前開發手機遊戲時,索愛有一款手機有強制要求,客戶端如果超過三分鐘無訊息發向網路服務端,則會在客戶端自動地強制把socket關斷。因為socket長連線相對於手機這樣資源少的裝置來說是寶貴的資源。 (這個強制是指客戶端系統自動關的,不是我們**close的)
j**a socket通訊如何設定連線時長
2樓:網友
setsolinger
public voidsetsolinger(boolean on,int linger)
throwssocketexception啟用/禁用具有指定逗留時間(以秒為單位)的 so_linger。最大超時值是特定於平臺的。 該設定僅影響套接字關閉。
引數:on- 是否逗留。
linger- 逗留時間,如果 on 為 true。
這個方法滿足你要求不?
3樓:木下臨風
;//設定超時時間,單位為毫秒。
4樓:我是周星星
大哥那些api函式有時候是不管用的,你直接用執行緒的方法解決不好麼?
5樓:皋永芬叔環
timeout);
恩。應該能實現你的要求。
首先socket不是乙個阻塞方法,它不會自動去連serversocket,而是你connect一次它就去連一次,socket本身不存在什麼連線server端超時,所以客戶端的連線超時是由你的程式去控制的,比如用執行緒。
其次,惡意連線這個問題,其實我已經給你解決了,在server端拿到socket後,不就能用來設定連線時間了麼?
在linux系統中,是否可以設定某個socket鏈結成功建立後在一定的時間內沒有資料通訊就把這個鏈
6樓:網友
好像可以設定socket的生存期, 看一下網路程式設計吧。
光纜斷了多長時間修好,通訊光纜斷修要多少錢
光纜基本上乙個小時就能修好,但由於修理的工作人員需要一定時間來到維修地點,所以總的時間不確定。光纜 optical fiber cable 是為了滿足光學 機械或環境的效能規範而製造的,它是利用置於包覆護套中的一根或多根光纖作為傳輸媒質並可以單獨或成組使用的通訊線纜元件。光纜主要是由光導纖鉛冊維 細...
夜裡總是睡不好覺,長時間睡也彌補不回來,為什麼?
機體沒有得到良好的休息,還有呀,你肯定沒有放鬆,是不是有壓力呀。一到晚上就睡不著該如何改善?可以看看書,不要看劇情跌宕的 也可以出去透透氣,深呼吸 保持平靜。可以吃安眠藥,不過儘量還是不要吃。可以通過數羊等方法。每到晚上就睡不著,該如何改善?睡前喝一杯牛奶,以前聽一些舒緩的 把手機放到比較遠的地方,...
情人之間,長時間不聯絡也不說分手,那算怎麼回事
兩個人之所以會成為情侶,是因為二人之間彼此喜歡,關係親密,且還能互相陪伴。如果情侶之間相處到可以長時間不聯絡,既不說想你,也不說分手,那多半是一方厭倦了又不敢開口在等你主動,也有可能是對方已經找好下家,把你當成了備胎。其實我們在現實生活中經常會遇到這樣的情況,有很多人,一開始與你相處的很熱烈,濃情蜜...