Android底層使用Linux實現,linux中規定,0-1024稱之為特權端口,只有root用戶才能夠綁定,如果要綁定這個範圍的端口號,可以有兩種選擇:
切換到root用戶運行該程序(簡單,但有風險)
改變程序的屬主為root,然後添加用戶設置位(set-user-bit),程序中綁定端口之後,馬上使用seteuid()類似的函數改變有效身份為普通用戶。
chown -R root:root app
chmod 4755 app
在程序中bind完畢,馬上調用seteuid()切換到普通用戶,但是seteuid是C函數,java的我就不清楚了。