平台

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. AJAX服务器返回数据 连接数据库查询数据
  2. 在selenium中使用css选择器进行元素定位(一)
  3. C++ Primer 5th笔记(chap 17 标准库特殊设施)bitset操作
  4. 区块链BaaS云服务(17)纸贵科技Z-BaaS“数据治理”
  5. 第一章 关于python
  6. 04- 移动APP功能测试要点以及具体业务流程测试
  7. 微服务架构之「 下一代微服务 Service Mesh 」
  8. sap.ca.ui.model.format.NumberFormat format logic for Globalization
  9. java tomcat 监控_java程序监控tomcat实现项目宕机自动重启并发送邮件提醒
  10. 安装tensorflow出现超时,找不到指定模+python 各个指定版本安装
  11. 《目标检测》R-CNN、SPP-NET、Fast R-CNN、Faster R-CNN
  12. 统计list里面相同元素个数_Array篇easy难度之求相同元素个数
  13. android串口工具apk_【APK】一个强大的Android开发工具!
  14. 1400协议是什么和28181区别_支持对接GB28181吗?监控,智能摄像头,国标推流,RTSP...
  15. MIT Molecular Biology 笔记1 DNA的复制,染色体组装
  16. [005量化交易] python收盘价绘图
  17. 图解ArcGIS数据三维显示
  18. js对金额数据添加最大金额单位【千、万、十万...】
  19. 浅谈VMware的NAT模式
  20. Javascript深克隆和浅克隆

热门文章

  1. C++11_关键字_Deleted
  2. 惠普明年初将在英国裁员千人
  3. Elasticsearch索引与文档
  4. 特别推荐BLOG(二) 纯洁的微笑 的博客
  5. webpack(持续更新)
  6. element el-tooltip 提示语 换行显示
  7. 玩转Instagram:Instagram第三方应用汇总 / 2011-04-05
  8. [年中总结]写在毕业的第三年
  9. python zipfile模块分卷_python zipfile模块用法详解
  10. 母婴用品加盟店皇家贝贝,全国的王牌