2016-12-04 86 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地址。

相关问题