我试图在带有eclipse的Mac中运行Java套接字,但是它不起作用。我收到此错误:

Exception in thread "main" java.net.BindException: Permission denied

    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.socketBind(PlainSocketImpl.java:521)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:414)
    at java.net.ServerSocket.bind(ServerSocket.java:326)
    at java.net.ServerSocket.<init>(ServerSocket.java:192)
    at java.net.ServerSocket.<init>(ServerSocket.java:104)
    at server.MessageServer.main(MessageServer.java:11)

我如何使其运行?
package server; //ChatServer
import java.io.*;
import java.net.*;

public class MessageServer {

public static void main (String args[]) throws IOException {
    int port = 100;
    ServerSocket server = new ServerSocket (port);
    System.out.println("Server is started!");

    while (true) {
        Socket client = server.accept ();
        System.out.println ("Accepted from " + client.getInetAddress ());
        MessageHandler handler = new MessageHandler (client);
        handler.start();
        }
    }
}

最佳答案

您不能打开低于1024的端口,如果您没有root权限,并且从注释中发布的代码开始,您似乎正在尝试打开100端口,从而确认了我的理论。

如果要在非root用户下运行代码,则需要使用高于1024的端口。

07-24 09:47
查看更多