小弟使用 Android 提供 VpnSerivce+Netty 框架开发一个全局网络代理 App 时遇到一个问题,就是需要用 VpnService.protect 一下最外层联网 channel 对应的 socket,不然 App 本身发出的数据包会被转发到 Tun 网卡,导致无限循环无网络。

对于直连外网的需求,我们可以通过反射来获取 channel 对应的 socket,并在 Bootstrap 那里直接 Protect:

public static void protectChannel(Channel channel) {

try {

NioSocketChannel nioSocketChannel = (NioSocketChannel) channel;

SocketChannel javaSocketChannel = (SocketChannel) getJavaSocketChannelMethod.invoke(nioSocketChannel);

LocalVpnService.newInstance().protect(javaSocketChannel.socket());

} catch (Exception e) {

Log.d("NettySocks", "protectChannel: " + e.getMessage());

e.printStackTrace();

}

}

但对于非直连外网,即我要在 pipeline 的末端加一个 Netty 自带的 HttpProxyHandler,给网络套一层 Http 代理时,怎么找到这个 HttpProxyHandler 对应的 socket 进行 Protect 呢?

安卓端netty_有人在 Android 中使用过 Netty 框架吗?相关推荐

  1. android项目集成okgo,Android中MVP+RXJAVA+OKGO框架

    [实例简介] Android中MVP+RXJAVA+OKGO框架 Glide的封装 沉浸式状态栏 butterknife 和recyclerview的使用 [实例截图] [核心代码] 882096ee ...

  2. 在SpringBoot中整合使用Netty框架提供WebSocket服务

    在SpringBoot中整合使用Netty框架 Netty是一个非常优秀的Socket框架.如果需要在SpringBoot开发的app中,提供Socket服务,那么Netty是不错的选择. Netty ...

  3. 安卓app与服务器通信协议,Android中的HTTP通信-总结

    出处:Android中的HTTP通信 等级:初级 参考:HTTP权威指南 一.HTTP基础 1. 名词解释 Http协议(超文本传输协议),定义了客户端向服务器请求协议,例如:请求文本,图片,音频,视 ...

  4. java安卓计时器_如何在android中设置计时器

    通过java.util.Timer和java.util.TimerTask使用计时器的标准Java方法在Android中运行良好,但是你应该知道这个方法创建了一个新线程. 您可以考虑使用非常方便的Ha ...

  5. 安卓手机运行linux声音,Android中手机声音调节步骤

    Android中手机声音调节步骤: a.通过系统服务获得声音管理器: AudioManager audioManager =  (AudioManager)getSystemService(Servi ...

  6. 摩客怎么设置安卓的dp_简单谈谈Android中SP与DP的区别

    从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...

  7. 如何在 Android 中使用 ObjectBox 数据库框架?

    导读 不论是对象映射还是数据集合,Android开发者有太多数据库框架可以选择.ObjectBox数据库这个号称移动端最快的数据库框架,具有超快速.面向对象的API.单元测试即时.线程简单.数据库可自 ...

  8. 在SpringBoot中整合使用Netty框架

    Netty是一个非常优秀的Socket框架.如果需要在SpringBoot开发的app中,提供Socket服务,那么Netty是不错的选择. Netty与SpringBoot的整合,我想无非就是要整合 ...

  9. netty结合java_在SpringBoot中整合使用Netty框架的详细教程

    Netty是一个非常优秀的Socket框架.如果需要在SpringBoot开发的app中,提供Socket服务,那么Netty是不错的选择. Netty与SpringBoot的整合,我想无非就是要整合 ...

最新文章

  1. java 负数变正数 +
  2. 【Acwing 219. 剪纸游戏】
  3. 【Cf #503 C】Sergey's problem(有趣的构造)
  4. 【任务分配】基于matlab蚁群算法无人机任务分配【含Matlab源码 1265期】
  5. wincc新手之路-安装与授权
  6. 写给非网工的CCNA教程(2)第一个协议--ARP协议
  7. 计算机专业老师水平,计算机评价老师的评语
  8. GALGAME文字提取agth v2008.11.20汉化版
  9. 深信服负载均衡开发实习面经
  10. 树形DP--bzoj4987: Tree
  11. C++静态库和动态库的导入导出
  12. CentOS 6.4 搭建 Java 开发环境详解
  13. 数据库原理-SQL Server版(期末复习)
  14. 计算机登录界面没有用户显示不出来,win10不出现登录界面怎么办
  15. 亚马逊上传报告报错常见情况
  16. 多媒体的一些基本概念
  17. Hadoop 之 Avro
  18. 神经网络理论及应用答案,人工神经网络原理答案
  19. 小伙熬夜用C++开发泡泡堂游戏,网友直呼:666!
  20. ZAB、Raft协议简述

热门文章

  1. 多帐套,多组织 登录系统设计
  2. 世界上最强的超级计算机们[图]
  3. 百度地图 添加工具条、比例尺控件
  4. 多去阅读思维训练类的书籍(转载)
  5. 树形DP Python 洛谷P1352
  6. 公司上市后员工真能暴富?当心期权的陷阱
  7. Android 系统工程中内置APK
  8. 360随身wifi原理,功能特点,使用说明
  9. python 爬虫 cookies设置,获取登陆后界面。
  10. InfoGAN 简介与代码实战