gpt4 book ai didi

Java Linux ServerSocket 没有做太多事情

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:39 26 4
gpt4 key购买 nike

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

谢谢

最佳答案

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

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

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

关于Java Linux ServerSocket 没有做太多事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com