我试图将我的项目移植到pc上的mac。 当执行将套接字程序移植到mac上,并在创建套接字时获取权限
server = new ServerSocket(80);
无一例外被抛出说权限被拒绝。我以管理员身份登录。
我试图将我的项目移植到pc上的mac。 当执行将套接字程序移植到mac上,并在创建套接字时获取权限
server = new ServerSocket(80);
无一例外被抛出说权限被拒绝。我以管理员身份登录。
在Windows以外的每个主要操作系统上,除非您是root用户,否则无法绑定到端口80。不只是一个管理员用户 - 根。
在Mac上,如果已启用,端口80也可能已被内置Web服务器(Apache)使用。
嗨,谢谢你回答我的问题,我可以使用另一个端口麻木。愚蠢的问题,如果我建立在根用户帐户下的程序。一个人如何安装MAC上的程序(我是一个刚刚开始使用MAC的PC人员,因此我不需要处理这些问题)Ted –
可能有使用该端口的限制。尝试使用罕见端口号运行它。
也可以尝试这个检查哪些端口,可用于正确使用与否:
ServerSocket serversocket = null;
try {
serversocket = new ServerSocket(i);
serversocket.close();
System.out.println(i + " Available");
} catch (BindException ex) {
System.out.println(i + " Unavailable");
}
}
的“权限被拒绝”的消息意味着你的用户没有必要的权限,以一个插座到该端口进行绑定。在基于Unix的操作系统上,低于1024的端口只能由root
用户绑定。可能类似的限制也适用于Windows - 您的Windows用户是否具有管理员权限?
如果您的用户确实有权限,并且在端口80上运行了另一项服务(如Apache),则会显示“地址已在使用中”消息。
它是一个绑定异常吗? – Mob
你可以发布引发异常的整个堆栈跟踪吗? – euphoria83
您是否使用'sudo'来启动JVM? – laz