0
我正在創建一個個人工具,它通過Java中的HTTP提供文件。 對於HTTP Server部分,我使用com.sun.net.httpserver.HttpServer包。 當我使用localhost或外部主機名從我自己的PC連接時,它可以工作,但是當我嘗試從外部客戶端連接到它時,它不會。 我還想提一下,java的默認策略文件並沒有被修改過,並且我在路由器後面,而且端口已正確轉發。 我試着修改策略文件,但是我沒有取得任何成功,雖然我不知道設置是否正確,或者它們是否被應用,並且我讀了一個有類似問題的線程,但是使用了rmi已經通過設置java.rmi.server.hostname系統屬性解決了,但我不認爲這也適用於我的情況,因爲服務器使用TCP。無法從外部客戶端連接到Java服務器
下面是初始化服務器的代碼:如果任何你們可以點我可以爲了做來解決這個我真的很感激它
Settings settings = Controller.getInstance().getModel().getSettings();
int port = settings.getHTTP_PORT();
server = HttpServer.create(new InetSocketAddress(port), 20);
String cachepath = settings.getCachepath();
if(!cachepath.startsWith("/")) cachepath = "/"+cachepath;
server.createContext(cachepath, new HTTPServerHandler());
server.start();
。
我也嘗試禁用防火牆,但仍然沒有運氣。 – warwolf 2011-05-04 15:07:44
你怎麼知道轉發是正確的?使用Wireshark檢查客戶端和服務器上的數據包流。 – 2011-05-04 15:23:37
我知道它正確轉發,因爲我在該端口上啓動了另一臺服務器,並且該服務器甚至可以在外部運行。 – warwolf 2011-05-07 13:24:13