導航:首頁 > 編程語言 > java釋放埠

java釋放埠

發布時間:2023-03-25 01:27:37

A. java Tomcat的80埠被佔用,怎麼解決

      1. 找到被佔用的埠號,殺掉

        殺埠進程:

        (1)在dos窗口中輸入netstat -aon|findstr"80"

        (2)查看最後面的數字,假設是3060,說明是PID為3060的進程在佔用這個埠

        (3)任務管理器——進程——查看——選擇列——勾選PID,找到PID為3060的進程,關閉進程即可

      2. 改用另一個埠,在tomcat的配置文件server.xml中新增一個節點,如下所示<Connector port="XXXX"/>

B. java中怎麼換埠!

Java中修改tomcat的默認埠號,運行WEB項目的時候都要在tomcat環境中,它的默認埠號是8080,有時想要佔用這個埠號而又想運行web項目時,就需要去修改它的默認埠,具體做法:

1、打開 jakarta-tomcat-5.5.9confserver.xml 找到如下代碼:

<!--Defineanon-SSLCoyoteHTTP/1.1Connectoronport8080-->
<Connectorport="8080"
maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
debug="0"connectionTimeout="20000"
disableUploadTimeout="true"URIEncoding="GBK"/>

2、上面的port=8080就是它所用的埠號,可以把它修改為80(瀏覽器的默認埠),這樣就可以在編輯它時直接輸入http://localhost/工程名稱,就可以訪問了!

C. java語言關閉某個指定的埠

此方法實現Closeable

這個是官方的api

closepublic void close()
throws IOException關閉此輸入流並釋放與此流關聯的所有系統資源。此方法只執行 in.close()。

指定者:介面 Closeable 中的 close覆蓋:類 InputStream 中的 close拋出:IOException - 如果發生 I/O 錯誤。
另請參見:in

D. java中socket函數,每次出錯再運行時便告訴我埠被佔用

很明顯的告訴了你上次調試的程序沒有完全結束,埠還在被佔用。

確保程序無情退出的時候埠被釋放掉。

解決:
打開任務管理器把你認為是上次調試的JAVAW.exe程序幹掉就好了

E. Java多線程中如何釋放某個線程佔用的埠號

可以寫個demo試一下啊,應該是可以的,socket接收到的消息只能被其中一個線程接收。線程1 和2 接受到的肯定不是同一個消息。會有先後之分。看你怎麼控制。比如從接收的消息是ABCD,那麼這相當於一個資源。線程1和2在這里拿消息,拿到之後,socket裡面就少了,比如線程1拿到AB,線程2拿到CD

F. Java TCP/IP協議的Socket如何設置埠復用

你的其中一端的連接沒有被及時釋放掉的原因是:你沒有順利地進行TCP連接關閉的流程。最近我就因為這個問題頭疼了好久,現在終於找到真正的原因和解決辦法了!關鍵點是:在調用close之前先發送一次數據(例如,out.write(0);)。接下來我用通俗的語言來闡述原因。

如果你兩端的程序都是在傳送完數據後直接調用Socket的close方法斷開連接的話,這就會有一個調用close方法誰先誰後的問題,先調用者是主動關閉TCP連接的那一方,而後調用者就是被動關閉TCP連接的那一方。

關閉TCP連接的過程中,雙方總共有3個報文需要發送,主動關閉方只需發送1個報文,就是斷開請求的報文,被動關閉方要發送2個報文,分別是 回應主動關閉方發來的斷開請求報文的第一次確認報文和 第二次確認報文,第二次的確認報文用來確認已經沒有數據需要發送了。

主動關閉方發送了斷開請求報文後,就進入了等待被動關閉方發送確認報文的狀態,一般情況下,被動關閉方馬上就會發送第一次確認報文。主動關閉方收到第一次確認報文後,就會等被動關閉方的第二次確認報文,直到超時,套接字資源被操作系統回收(P.S. 雖然書上不是這么說的,但是實際的OS就是這么處理的,原因下面再說)。此時如果被動關閉方發送了第二次確認報文,整個TCP連接關閉流程就順利結束了,所有資源就會被OS回收。

重點來了,問題在於,作為被動關閉方的程序中,在主動關閉方等待被動關閉方發送第二次確認報文時,就算執行了Socket的close也不會發送第二次確認報文,只有向主動關閉方發送數據(任意)後,被動關閉方才會發送第二次確認報文,整個流程才能順利進行,TCP連接的資源才會被釋放,下次才能重復使用同個套接字。

我自己實驗出來的結果是:在兩端的代碼中(只有一端發送一端接收),都只使用

out.write(0);
me.close();

進行TCP連接的斷開,out是Socket的OutputStream,me是已連接的Socket對象。結果,無論重復多少次運行,都能不間斷地順利運行,每次運行結束後,用資源監視器看TCP連接情況,都看到所使用的連接資源都已經被釋放,並沒有等待2MSL時間後才被釋放,所以實際的OS的處理跟理論上的不一樣。所以你的程序要等一段時間後才能再次使用同個埠並不是因為存在2MSL的等待時間,而是因為TCP連接關閉流程沒有順利進行,但是所使用的進程已經退出,OS就會自動幫你回收資源,不過需要等超時後才處理。(P.S. 我測試的OS是Windows)

如果兩端的程序斷開TCP連接時都是直接開始斷開的過程而沒有延時的話,誰是主動關閉方就不確定,兩端的程序中的斷開TCP連接的代碼就得有發送數據的部分,如果其中有一方延時了,那延時的一方就有很大的概率是被動關閉方,另一方在調用close前就不需要發送數據了。

還有,就算TCP連接關閉的流程順利進行,但是,下次使用同個套接字(兩端套接字跟之前的相同)前得延時一下,幾百毫秒就夠了(具體自己調整),因為OS回收套接字資源是需要時間的,關閉TCP連接後就立馬創建兩端套接字跟所關閉的連接的兩端套接字相同的連接也有可能因為仍然被佔用而報錯。

G. 關於Java.net.BindException,怎麼釋放被佔用的埠

我有一個頁面,裡面是循環去請求一個URL(會請求的很快,是拿到請求結果後馬上再去請求), 如果這個頁面只開一個好象是沒有問題的態碼胡,但如果開兩個這個頁面(就是兩個循環請求),其中一個頁面就會報 Java.net.BindExecption Address already in use:connect的異常(有時候兩個都會),我查了下帆攔, 好象TCP/IP每次請求都會自動分配一個埠,並且有自動釋放的間隔,用netstat -a 看了下,請求頁面的時候果然多出很多埠, ------解決方案-------------------- 這個好辦啊,一旦產生這個異常你就重新請求,重新請求會重新分配到新的埠 ------解決方案-------------------- 短時間的大量連接,埠被佔用是沒辦法的,可以在發生異常後等待一段時模鍵間再去訪問 ------解決方案--------------------

H. java寫的通訊短鏈接客戶端,老是會報埠被佔用的錯誤,跪求高手幫忙分析下是什麼問題

如果你的伺服器端有其他嘩芹的程序將該埠佔用亂模畢,那麼你這個程序就要另外開啟其他埠。如果其他程序釋放了該埠,你再次連接的碼鎮時候就會成功。希望對你有幫助。

I. java 用ServerSocket監聽了一個埠,在程序結束的時候沒有close,現在再次執行程

用 cmd.exe 程序來輸入命令

netstat-ano|find":你的埠號"

找到了的話:

taskkill/f/pid:你的進程PID(在上一條命令行中岩滲讓會列出進程PID)


正常的情況下,如果你的程粗局序喊派真的已經退出了,那個埠就會自動被操作系統釋放的,很可能你的程序還沒有退出,只是隱藏了。


舉例,假如 tomcat 啟動了之後:

netstat-ano|find":8080"

得到 tomcat 進程號PID是 6435,再來:

taskkill/f/pid:6435

J. java中如何檢測本機指定的UDP服務埠是否被佔用並且自動分配一個可用udp埠

用於接收和發送UDP的Socket實例。該類有3個構造函數:
DatagramSocket():通常用於客戶端編程,它並沒有特定監聽的埠,僅僅使用一個臨時的。程序會讓操作系統分配一個可用的埠。
DatagramSocket(int port):創埋則瞎建實例,並固定監聽彎空Port埠的報文。通常用於服務端
DatagramSocket(int port, InetAddress localAddr):這是個非常有用的構建器,當一台機器擁有多於一個IP地址的時候,由它創建的實例僅僅接收來自LocalAddr的報文。
DatagramSocket具有的主要方法如下:
1)receive(DatagramPacket d):接收數據報文到d中。receive方法產生一個「阻塞」。「阻塞」是一個專業名詞,它會產生一個內部循環,使程序暫停在這個地方,直到一個條件觸發。
2)send(DatagramPacket dp):發送報文dp到目的地。
3)setSoTimeout(int timeout):設置超時時間,單位為毫秒。
4)close():關閉DatagramSocket。在應用程序退出的時候,通常會主動釋放資源,關閉Socket,但是由於異常地退出可能造成資源無法回收。所以,應該在程序完成時,盯扒主動使用此方法關閉Socket,或在捕獲到異常拋出後關閉Socket。

閱讀全文

與java釋放埠相關的資料

熱點內容
日本巨胸奶大電影 瀏覽:210
shell外部命令 瀏覽:102
說程序員禿的 瀏覽:717
多女主免費閱讀 瀏覽:49
前端程序員選擇極客時間 瀏覽:164
php我要自學網 瀏覽:201
a盤命令 瀏覽:706
日俄加密通話 瀏覽:660
linuxtee命令 瀏覽:53
pdf程序員找不到了 瀏覽:63
全球票房實時查詢 瀏覽:223
伺服器如何添加域用戶 瀏覽:271
java靜態static 瀏覽:227
程序員容易掉頭發嗎 瀏覽:333
python通用管理系統 瀏覽:204
apachephphtml 瀏覽:141
安慶智能雲伺服器找哪家 瀏覽:763
linuxtab輸入 瀏覽:932
小說網盤資源 瀏覽:504
全免費影視投屏網站 瀏覽:254