java.net.BindException : Permission denied as root

标签 java exception port

我正在关注 Oracle 的服务器端套接字教程:http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html 。我使用他们提供的来源:

但是,当我尝试运行 KnockKnockServer 时,我收到 IOException,然后服务器打印

Could not listen on port: 4444.

我在 IOException catch block 中添加了一个 e.printStackTrace() ,并得到:

[beni@mackerel:~]$ \sudo java KnockKnockServer
Creating socket
Could not listen on port: 4444.
java.net.BindException: Permission denied
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.<init>(ServerSocket.java:194)
    at java.net.ServerSocket.<init>(ServerSocket.java:106)
    at KnockKnockServer.main(KnockKnockServer.java:41)

注意,我以 root 身份运行它并尝试打开端口 4444。为什么我仍然收到“权限被拒绝”错误?

最佳答案

我设法解决了这个问题。我放手了!安装在我的系统上,但禁用了菜单栏中的所有规则。 KnockKnockServer 仍然无法打开端口。现在我已经卸载了“放手!”完全可以正常打开端口。

这仍然有点令人惊讶,因为我总是能够使用 nc -l 4444 和 C 程序打开相同的套接字端口,但不能从 Java 程序打开。但与此同时,Hands Off 并没有询问我是否允许我的 KnockKnockServer 打开端口。

我会跟进 Hands Off 支持,也许他们可以提供帮助。

谢谢,问候 贝尼迪克特

关于java.net.BindException : Permission denied as root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131673/

相关文章:

java - JUnit 为 com.google.common.collect.Iterables.tryFind 抛出 java.lang.NoSuchMethodError

java - NoClassDefFoundError : com/sun/xml/internal/bind/DatatypeConverterImpl using knopfletfish

java - 我可以阅读但无法编辑主类内容

java - 如何使用指定端口号发送Java HTTP请求

port - 如何在笔记本服务器停止后释放其保留的端口?

java - 如何在循环中转换泛型?

c# - 'Emgu.CV.CvInvoke' 的类型初始值设定项抛出异常

android - 如何捕获没有互联网异常错误?

java - 将 bigint 转换为 long

node.js - Nodejs Express 在 nginx linux 服务器上的应用