本人用Linux进行java的socket编程遇见这个错误,原因很简单,就是端口号没有选对。

kevin@kevin-dev:/home/ftp$ java Demo1_recieve
Exception in thread "main" java.BindException: Permission denied (Bind failed)
at java.PlainDatagramSocketImpl.bind0(Native Method)
at java.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:93)
at java.DatagramSocket.bind(DatagramSocket.java:392)
at java.DatagramSocket.<init>(DatagramSocket.java:242)
at java.DatagramSocket.<init>(DatagramSocket.java:299)
at java.DatagramSocket.<init>(DatagramSocket.java:271)

at Demo1_recieve.main(Demo1_recieve.java:13)

在linux系统中,端口号再1024以下的需要root权限,只要把端口改成大于1024的就可以了,但避开一些软件的默认端口,如Tomcat的8080端口,mysql的3306端口。

更多推荐

Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)