Linux下Socket编程带来的尴尬

随便写了一个Socket编程的代码,目的是将PC作为服务器,Android作为客户端互相聊天。

代码很简单。

但是遇到一个让人很尴尬的问题,居然抛出这样的异常信息:

  1. java.net.BindException:Permission denied  
从来没有遇到这样的问题,这个程序可以说是天衣无缝,怎么可能出现这种异常,不可思议!
权限限制?怎么会有权限限制?

千钧一发之际,我修改自以为是的代码,把端口号由200改为2000,额的神啊?居然好嘞!

呵呵,在socket编程中,不要将端口号置为小于1024的值,因为  1~1024是保留端口号,可以使用大于1024中任何一个没有被占用的端口号。

从安全的角度来考虑,Linux这样做是有道理的。没有权限的用户不可以使用威胁到系统本身的东西。

相关推荐