微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用java应用程序在linux中打开端口

我有一个Java应用程序,在一个端口中创build一个套接字服务器。 我testing我的应用程序在Windows机器上,并正确运行,但是当我在linux机器上testing它,端口不听。

有什么办法可以在linux机器上专门打开一个端口吗?

我运行“netstat”命令,我的应用程序中使用的端口不会出现。 它不会抛出任何exception。 我试图从另一台机器连接到应用程序,连接被拒绝。

真诚的,我不知道为什么它不运行…

应用程序path和侦听端口

为什么套接字连接()到它自己的临时端口?

“searchd”正在显示“FATAL:bind 0.0.0.0.0上失败:地址已经在使用中”

Windows Azure虚拟机端点

如何closures由postgres打开的​​所有端口?

请帮助。

谢谢,大卫

tomcat正在运行,但是8080端口没有响应

在Windows 7上使用PowerShell捕获COM端口的输出

如何更改/查看Windows机器上的临时端口范围?

通过增加额外的以太网接口来增加临时端口

使用SOCATlogging在端口上收到的消息

你试图打开的端口号是什么?

如果它低于1024,那么只有root用户才能打开它或授予对它的访问权限。

你确定你的代码实际上正在执行? 您对于.sar文件中的代码评论意味着您不是直接执行它,而是将其部署到jboss。 也许它没有正确部署? 你有没有尝试在创建serverSocket之前和之后放置一些日志语句(甚至是System.out.println语句)?

Windows和Linux应该没有区别。 你能发布一个异常堆栈,你最有可能得到?

可能的情况是,您选择的端口已经被占用(在Linux上通常有一些服务正在运行),或者您试图绑定低于1024的端口,这只允许root用户使用。

使用netstat -napt来检查(我不知道你使用了哪些参数)。

就像Johan Buret所说,如果你试图打开一个低于1024的端口,你将不得不以root或者sudo方式运行你的程序。

如果你正在运行一个像ubuntu这样的发行版,那么你不是root用户,root用户没有启用,请执行以下命令:sudo java Socketserver

如果你是一个普通的用户,并且可以su启动到基于fedora / redhat的发行版,请运行:su – (提示输入root的密码)java Socketserver

你有没有尝试从同一台机器连接,排除防火墙问题?

你也可以用telnet来检查端口是否打开

telnet localhost 1234

(如果端口未打开,将拒绝连接)

它应该工作一样。 它在Linux上抛出异常吗? 也许目标端口已被占用。

编辑:也许你的代码成功绑定到端口,但Linux防火墙阻止传入的连接?

编辑2:也许你的Linux JBoss配置不同,你的包含serverSocket初始化的代码不会自动执行。

我怀疑JBoss SAR配置不正确,无法启动服务器。 尝试以下操作:

从Linux命令行运行JAR文件(如在Windows上成功执行)

将SAR文件安装到Windows JBoss安装中,并查看是否遇到与Linux上相同的问题

SELinux是否启用? 尝试禁用它: http : //www.crypt.gen.nz/selinux/disable_selinux.html

回复这个旧帖子; 为新来者的利益。

我的一个团队成员正面临类似的问题。 不知道你的具体问题可能是什么; 对我们来说这个问题很小,很愚蠢。 Unix的路径分隔符是冒号“:”,而windows的分号是“;”。 在从java应用程序中调用套接字服务器java进程时,请确保使用java.io.File.pathSeparator,以便RunTime代码可以在Windows和Unix环境下工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐