2016-12-04 50 views
0

是我的工作,而現在各種平臺上的一個代碼開始突然出現故障,有代碼更改但未在有關這個地方的區域。的SocketChannel拋出IOException異常與被拒絕的權限

的拋出異常的代碼行是:

(SocketChannel) selectionKey.channel()).finishConnect() 

而且它拋出:

java.net.SocketException異常:權限被拒絕:沒有進一步的信息

什麼可能是問題?

可能顯示更多的信息有些日誌行,它是一個測試代碼:

2016年12月4日22:50:10,585 [主] DEBUG插座 - 插座 - 客戶端1-1
寄存器連接到解決:0.0.0.0/0.0.0.0:8080
2016年12月4日22:50:10585 [主要] DEBUG SocketSelector - 註冊密鑰: OP_CONNECT(用於編程客戶端-1-1)
2016年12月4日22:50:10595 [主要] DEBUG SocketSelector - 註冊到:OP_CONNECT> 2016年12月4日22:50:10595 [NetworkThread] DEBUG SocketSelector -Got選擇鍵
用於信道(java.nio.channels.SocketChannel中[連接未決 遠程= 0.0.0.0/0.0.0.0:8080])

+0

你叫'連接()'該通道上?你以前是否在它上面調用過'finishConnect()'?如果是這樣,它是否真的返回? – EJP

+0

是的,我叫connect()和它是成功的。 finishConnect()從第一次拋出這個異常。 – slashms

+0

你爲什麼要連接到0.0.0.0? – EJP

回答

1

的問題是,你正在試圖連接到0.0.0.0,不是有效的TCP目標地址。這將導致EPERM在人描述的原因連接

使用127.0.0.1或正確的IP地址。

相關問題