2012-12-03 155 views
3

我在這還有什麼其他情況不知道(SocketException:權限被拒絕:連接)錯誤會從線拋出SocketException:權限被拒絕:連接

SocketAddress socketAddress = new InetSocketAddress("86.143.5.165", 6464); 
// Set a 3s timeout 
clientSocket.connect(socketAddress, 3000); 

有關於權限的一些Android的問題,並當使用端口< 1024. 我正在運行一個簡單的Java客戶端/服務器應用程序,在端口6464上,並且我正在使用java 1.6.0_32(在閱讀Java 1.7.0_7後添加了對ipv6的支持)。

我將端口80轉發到我的服務器(通過在瀏覽器中轉到我的外部IP在客戶端計算機上進行驗證),並且端口6464也處於打開狀態。

爲什麼客戶端會被拒絕連接?

編輯:我試圖從服務器本身連接到服務器時最初得到此錯誤。 (顯然,我想這就像是一個電話,你會聽到一個有趣的聲音)。我有一個朋友測試它,他可以連接。我現在正在連接一臺不在局域網內的筆記本電腦(即使用3G手機作爲熱點),但奇怪的是仍然出現錯誤。

EDIT2:

java.net.SocketException: Permission denied: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(Unknown Source) 
at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at runtime.MyGame.main(MyGame.java:31) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
at com.sun.javaws.Launcher.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
#### Java Web Start Error: 
#### Socket failed to connect 

回答

1

客戶端未被拒絕連接。它被拒絕權限連接,由本地操作系統。

在Java 1.4中添加了IPv6支持。

+0

公平評論我剛剛意識到最近有一些ipv6問題(在Java 7上)(現在協議現在在服務器和客戶端機器上都被禁用了,適配器重新啓動) – Hemmels

+0

@Hemmels在您的題。 – EJP

0

嗯,首先,讓我們 'MyIpAsAString' 和端口將是有益的。無論如何,你確定服務程序運行在該IP和端口上嗎?這通常是爲什麼,或者你自己的連接代碼本身是不正確的。

+0

這不是'連接被拒絕'的錯誤。 – EJP

+0

那麼,在這種情況下,它可能也只是計算機有一個防火牆或沿線拒絕外部請求的東西。 – VoidWhisperer

+0

在問題中添加了我的實際IP。 – Hemmels

0

這是爲了處理客戶端上非常本地化的網絡設置。其他客戶端可以沒有問題地連接,我認爲這可能與工作組或特定本地客戶端防火牆有關。謝謝大家。

-1

希望這個鏈接將幫助你。

檢查這些鏈接

https://www.java.net//node/703177 

http://www-01.ibm.com/support/docview.wss?uid=swg21496098 

https://groups.google.com/forum/#!topic/google-web-toolkit/LQfsBSwD_ug 
0

對於那些有類似的問題在這裏落地雷。

我從maven運行Spockgroovy測試時出現此錯誤。運行groovy測試直接運行正常,但從maven運行它們失敗。

要解決該問題,請將maven-surefire-plugin配置爲永不分叉。

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <forkMode>never</forkMode> 
      </configuration> 
     </plugin> 

不知道爲什麼這解決了這個問題 - 將歡迎評論。