Android Socks5代理服务器程序开发

本文介绍了Android上使用Socks5协议开发代理服务器的原理和实现过程,包括Socks5的工作模式,以及代码实现中的主活动、服务器线程和应答线程的设计。通过这种方式,解决了移动端网络断连问题,实现了应用间的网络代理。
摘要由CSDN通过智能技术生成

原理

为处理移动端网络断连问题,实现应用无关。我们考虑采用client<->proxy<->Internet的三层架构。从client->proxy这一环节,ProxyDroid已经能够实现。

因此接下来主要需要完成的工作是

  1. proxy的开发
  2. proxyInternet互相之间的信息转发,以及剩余的从proxy->client端信息传输。

ProxyDroid端我们采用了Socks5协议。它的优势是:无需proxy从报文内容中解析目的IP以及端口号,而是可以从正式数据传输前的握手信息获取。

Socks5代理工作模式

  1. client连接Socks5 proxy服务器端口
  2. client端发送命令{5,1,0}
  3. proxy返回应答{5,0},表示可以进行代理
  4. client发送:{5,1,0,1}+目的地址(4字节的16进制表示)+目的端口(2字节的16进制表示)
  5. proxy提取出IP地址、端口号与外网建立socket
  6. proxyclient返回应答:{5,0,0,1}+外网套接字绑定的IP地址(4字节的16进制表示)+外网套接字绑定的端口号(2字节的16进制表示)
  7. proxy不断检测client套接字,读出数据发送给外网
  8. proxy不断检测外网套接字,读出数据发送给client

代码

基本思想如下:

  1. 主活动类中会设置一个ServerSocket用于接收proxydroid发送过来的socks5报文从而建立socket,然后将该socket传递给服务器线程;
  2. 服务器线程与client端通信,建立从cl
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值