平台

RK3288 + Android 7.1

问题

android 应用无法绑定 < 1024 的端口号.

    void tryBind80Port(){new Thread(){@Overridepublic void run() {try {InetSocketAddress addr = new InetSocketAddress(80);//以80测试ServerSocket ss = new ServerSocket();ss.bind(addr);} catch (IOException e) {e.printStackTrace();}}}.start();}

报错LOG

2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err: java.net.BindException: Permission denied
2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err:     at java.net.PlainSocketImpl.socketBind(Native Method)
2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err:     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:368)
2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err:     at java.net.ServerSocket.bind(ServerSocket.java:377)
2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err:     at java.net.ServerSocket.bind(ServerSocket.java:331)
2017-01-01 20:03:11.998 2762-2778/com.ansondroider.appshortcut W/System.err:     at com.ansondroider.appshortcut.MainActivity$1.run(MainActivity.java:39)

解决

参考:https://www.linuxquestions.org/questions/linux-networking-3/allowing-non-root-to-bind-to-ports-1024-a-350437/

        //kernel/include/net/sock.h/* Sockets 0-1023 can't be bound to unless you are superuser */#define PROT_SOCK 1024
    文件中已声明, 0 - 1023 端仅 SU用户能使用.所以, 修改的方法只是也是把限制的端口号改低或直接改为0.

PS: 个人并不建议去修改这个端口号, 最好还是APP能够申请其它端口, 这样也会少一些冲突

android 无法绑定 1024 以下端口相关推荐

  1. setcap详解-普通用户绑定1024以下端口

    Capabilities的主要思想在于分割root用户的特权,即将root的特权分割成不同的能力,每种能力代表一定的特权操作.例如:能力CAP_SYS_MODULE表示用户能够加载(或卸载)内核模块的 ...

  2. Linux下bind绑定1024以下端口

    问题描述 程序跨平台移植,linux下测试的时候发现bind返回失败,提示没有权限,原来是端口小于1024,需要root权限,然后就开始研究添加root权限: 因为是窗口程序,需要弹框提示输入密码,但 ...

  3. Linux使用小于1024的端口号,Linux中如何让普通用户使用小于1024的端口

    在Linux系统中,一般情况下,小于1024的端口是不对没有root的Linux普通用户开放的.但是还是有一些技巧能够让没有root的用户使用小于1024的端口的.本文就来介绍一下Linux中如何让普 ...

  4. 非root用户使用1024以下端口(Linux的Capabilities)

    非root用户使用1024以下端口 一.问题背景 二.解决方法 1.进入root用户 2.分配用户权限 总结 1.Capabilities介绍 2.Capabilities其他功能名称 3.Capab ...

  5. linux 限制用户端口,linux – Centos 6.4只允许用户绑定到某个端口?

    我知道你可以使用网络命名空间来做到这一点,因为我就是这样做的.但它非常复杂. 这个过程就是这样. >使用取消共享创建网络命名空间 >使用ip link add type veth创建一个v ...

  6. linux普通用户开不了端口,Linux中如何让普通用户使用小于1024的端口

    在Linux系统中,一般情况下,小于1024的端口是不对没有root的Linux普通用户开放的.但是还是有一些技巧能够让没有root的用户使用小于1024的端口的.本文就来介绍一下Linux中如何让普 ...

  7. java udp 同一个端口_java – 系统中的两个不同的UDP套接字可以绑定相同的端口吗?...

    它与TCP和UDP之间的区别有关.当您创建TCP套接字时,您正在创建与另一台计算机上的端口的同步客户端连接,并且当您连接到地址时,您实际上也会在套接字上获得本地端口.因此,在您的示例代码中,创建的两个 ...

  8. Linux 绑定USB设备端口

    Linux 绑定USB设备端口 1 根据设备ID绑定 2 根据电脑USB硬件端口绑定,只要插入该USB端口即为设定设备名 1 根据设备ID绑定 方法特点:按照ID绑定的话不需要固定USB接口,它是根据 ...

  9. 【Android取证篇】ADB端口驱动更新详细步骤

    [Android取证篇]ADB端口驱动更新详细步骤 更新ADB端口驱动,解决无法连接设备问题-[蘇小沐] 1.[记录VID]路径:设备管理器->便携设备->属性->(记录)VID 查 ...

最新文章

  1. MySQL WindowsCMD常用命令!
  2. 遇见BUG(4)不要默认电平标准!
  3. html 找不到文件,WebView 加载本地HTML 文件 提示找不到该文件
  4. Python学习 - 之 数据封装和私有属性
  5. C#字符串截取,查找某字符下标
  6. java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥
  7. 计算机文字录入培训大纲,《计算机文字录入》课程教学大纲
  8. javascript语言扩展:可迭代对象(3)
  9. python 利用递归求阶乘
  10. 【ML小结6】关联分析与序列模式关联分析
  11. ubuntu16.04server安装dell服务器H750raid卡驱动
  12. 用Python网络爬虫来看看最近电影院都有哪些上映的电影
  13. 数据结构---基础知识必备
  14. Unity3D中 使模型变成变透明
  15. Proxifier v3.15
  16. 使用基于时间的关系加权标准来改善社交网络中的链接预测
  17. MyEclipse中jer配置
  18. matlab画图中颜色渐变
  19. 淘宝接口 TopAPi
  20. SpringCloud 教程资源

热门文章

  1. VMware如何使用NAT上网
  2. 购买国外服务器那些窘事情
  3. PHP保存数组到数据库
  4. 芯片是怎样“炼”成的?
  5. 老妹,2022年,我来带你转型~~~
  6. vue3时间格式转换为yyyy/mm/dd,yyyy-MM-dd,yyyy-MM-dd hh:mm:ss,hh:mm,yyyy-MM-ddThh:mm:ss+08:00
  7. *分享-神奇的MLE原因-为什么结构体开的内存不大却MLE?用数组开更大还能ac???
  8. @ConfigurationProperties注解使用方法(内含源代码)
  9. 最新Jenkins自动化构建使用 (Unity2020+Jenkins+云效)
  10. DM共享存储集群搭建