2010-08-26 79 views

回答

3

不好綁定到一個端口。嘗試啓動應用程序並重置網絡適配器,看看會發生什麼。其他應用程序也可能需要使用該端口。

我認爲最好在外部資源(如文件)上實現鎖定,但必須小心:如果pc重新啓動或類似的情況,則需要檢測舊鎖。

您是否檢查過Apache Commons或JBoss項目?我敢打賭,必須有一個圖書館來正確地做到這一點。

1

只有當他們使用相同的端口,並且有很多端口。只是不要使用其中一種常見的。

某些軟件也會使用某種鎖定文件。因此,如果第二個實例存在,它將不會啓動。

0

一般的概念是,您定義一個TCP端口,然後在應用程序啓動時綁定(偵聽器/服務器)。如果你無法綁定到它,那麼你知道你的應用程序的另一個實例已經在運行。

如果另一個應用程序使用相同的端口用於其他目的(或出於同一目的),那麼這將失敗。因此,將端口用於存在於可執行文件外部的配置文件是有意義的,以便可以將其配置爲使用相關機器上尚未使用的文件。

0

確實可以將ServerSocket綁定到特定的TCP/IP端口。如果該端口已被使用,bind將拋出IOException

此方法不會干擾使用相同方法的其他應用程序,除非另一個應用程序碰巧打開相同的端口(TCP/IP端口由16位數字標識)。所以你應該選擇一個固定的端口號,並希望沒有其他應用偶然使用相同的端口號。

請注意,在Windows上,您可以使用命令netstat查看哪些端口正在使用哪些可執行文件。