① java中socket函數,每次出錯再運行時便告訴我埠被佔用
很明顯的告訴了你上次調試的程序沒有完全結束,埠還在被佔用。
確保程序無情退出的時候埠被釋放掉。
解決:
打開任務管理器把你認為是上次調試的JAVAW.exe程序幹掉就好了
② java socket編程 客戶端怎麼斷開socket
你可以把inputStream和outputStream設置為成員變數,然後寫一個方法用來關閉流就好了,
又或者通過System.exit(0)關掉當前客戶端線程。
當然,你也可以直接通過工具直接把客戶端關了。
③ java中短時間new Socket次數過多,並且socket.close() 並不是釋放連接,而是設置成了time_wait狀態怎麼處理
如果短時間內需要建立的連接過多的話,建議使用Socket線程池來做處理。new 太多的話,占的內存會很多,速度變慢。
④ java socket伺服器怎麼釋放
連接的socket關閉,就可以。。。。。如果有文件 IO,也要關閉
⑤ 如何解決大量JAVA客戶端Socket關閉時TIME
IME_WAIT這個狀態是TCP/IP設計時為考慮網路的可靠性所必須的,主動發起關閉連接的一方在接收到被動關閉連接方發出的FIN後就會進入TIME_WAIT狀態,這個狀態最長會持續2*MSL(Max Segment Life)時間,其作用是(1)主動方發出的ACK可能會在網路中丟失,如果丟失被動方會重新發出FIN,如果提前關閉了連接就無法接收到重發的FIN。(2)使游盪在網路中的分組在經過2*MSL超時後消失。 TIME_WAIT這個設計是為了網路可靠性的考慮,具體設定時間長短需要根據網路情況決定,超時時間Windows默認設置一般為四分鍾,也就是說主動方打開的埠最長在四分鍾內不會被釋放,導致可用埠減少。 TIME_WAIT的默認等待時間操作系統設置一般都較為保守,如果網路連接中出現大量TIME_WAIT狀態,可以考慮修改設置(1)修改操作系統配置減少TIME_WAIT時間,Windows上的設置方法是進入注冊表的HKLM->SYSTEM->CurrentControlSet->services->TcpIp->Parameters,添加一個DWORD項「TcpTimedWaitDelay」,時間可設置的短一些(比如60秒或30秒)(2)使用Socket提供的SO_LINGER選項,當SoLinger設置為0時Socket會取消關閉連接等待(不建議)。
⑥ java中socket埠怎麼放開
哈哈!
你肯定沒有結束那個程序
或者是沒有關閉埠。
用close的方法就可以了
⑦ java socket伺服器如何捕獲並釋放無效連接
這個很簡單啊。設置超時就可以了,當超過一定時間沒有進行數據交換的話,會自動關閉的。或者寫個監護線程,查看狀態。socket還有一個方法叫isClose也可以進行判斷。樓下的是sice5921:是2貨來到的,來混分的樓主千萬別給分他,像這種拉基進來一次檢舉一次,哪怕把問題關閉了也不給這種拉基分