随便写了一个Socket编程的代码,目的是将PC作为服务器,Android作为客户端互相聊天。
代码很简单。
但是遇到一个让人很尴尬的问题,居然抛出这样的异常信息:
java.net.BindException:Permission denied
从来没有遇到这样的问题,这个程序可以说是天衣无缝,怎么可能出现这种异常,不可思议!权限限制?怎么会有权限限制?
千钧一发之际,我修改自以为是的代码,把端口号由200改为2000,额的神啊?居然好嘞!
呵呵,在socket编程中,不要将端口号置为小于1024的值,因为 1~1024是保留端口号,可以使用大于1024中任何一个没有被占用的端口号。
从安全的角度来考虑,Linux这样做是有道理的。没有权限的用户不可以使用威胁到系统本身的东西。