-6

我正在运行 Linux Fedora 18,我想要的只是我的 java 代码,以便在我输入 http://myhostname 的 Web 浏览器中打印 hello linux。我在 Windows 中使用了我的代码,它可以找到。但是在 Linux 中,我使用端口 80 被拒绝了权限。所以我然后我使用端口 8080 没有权限被拒绝,但它没有工作。使用端口 80 客户端接受,我只能在机器上发送和接收信息,即使它连接到网络,服务器套接字也不在不同的机器上。最后一件事我已经制定了策略文件以允许端口 80 工作,但它是无用的我仍然不确定我是否要在我的代码中设置一个策略文件。对不起,如果这个问题很长,但我已经研究这个问题一个月了,所以请不要告诉我用谷歌搜索它。所以我想我的主要问题是为什么 serverSocket 不能从 linux 机器上广播任何内容以及如何修复它?

谢谢

4

2 回答 2

0

我做了一个 yum 更新,代码现在工作得很好。

于 2013-08-16T19:10:27.680 回答
0

在 Linux 上,您需要是 root 才能使用从 0 到 1023 的系统端口。Tomcat 有打开端口 80 的方法,而无需让进程以 root 身份运行,但是在这里讨论它们有点复杂。Linux 提供了授予访问这些端口的权限的方法,但通常我只使用端口 8080。

如果您使用端口 8080,则需要使用路由器将其重定向到端口 80,否则您必须指定要连接到端口 8080。您的浏览器仅假定端口 80。例如http://yourhost:8080/

要从另一台机器连接到此服务器,您的防火墙必须设置好,以便您连接到它。防火墙旨在阻止您未明确允许的流量。这意味着您可能需要在服务器和网络路由器上打开防火墙,并将您的公共 IP 地址(不是您的内部 IP 地址)放在客户端的 hosts 文件中。

于 2013-08-16T06:12:03.337 回答