java - com.sun.net.httpserver 报错,是什么意思?

标签 java permission-denied httpserver socketexception

我的代码是这样的:

    import com.sun.net.httpserver.*;
    import java.net.InetSocketAddress;
    ...

    void Srart_Server()
    {
      ....
      InetSocketAddress addr=new InetSocketAddress(80);
      HttpServer server=HttpServer.create(addr,0);      // Line : 32

它在我的 PC 上运行正常,但是在我将应用程序复制到 Linux 并运行它之后,出现以下错误:

java.net.SocketException: Permission denied
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:100)
        at sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:50)
        at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
        at com.sun.net.httpserver.HttpServer.create(HttpServer.java:130)
        at Http_Server.Srart_Server(Http_Server.java:32)

为什么?如何解决?

最佳答案

远程计算机上的防火墙 (linux) 不允许您的 java 代码打开端口。这需要根据 Linux 发行版和防火墙(+网络设置)进行修复。

作为一种可能的解决方法,您可以尝试打开端口 8080。一些 unix 机器会为 root 用户保留所有低于 1024 的端口。

关于java - com.sun.net.httpserver 报错,是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104740/

相关文章:

java - 使用 simpleAdapter ANDROID 在 ListView 中显示图像

java - 具有继承性的实体的 JPA native 查询

java - 在Java中将AWS APIGateway的模型转换为JSON

c++ - "Permission denied"第二次打开文件写

Windows Django 服务器

java - 检查 facebook 用户是否从 java 中的服务器端连接到应用程序

c# - Windows 8 上 App.Config 的路径访问被拒绝。如何更新 App.Config?

VBA Internet Explorer 自动化 'Permission Denied'

java - Grizzly HttpServer 中的连接限制

HttpSendHttpResponse 没有发送数据