在Android VpnService中读取和转发数据

时间:2014-05-13 13:28:40

标签: android sockets

ToyVpnService中,他们读取IP数据包,然后将其转发到远程VPN服务器。

  1. 为什么他们使用DatagramChannel?是不是DatagramChannel仅用于UDP?
  2. 为什么他们使用IP和TCP标头转发包?有很多将任意数据写入套接字(例如,here)而没有标题的示例。

1 个答案:

答案 0 :(得分:2)

据我所知,ToyVpnService要么是一个实验,要么是在开发的早期阶段。

  1. 是的,它仅用于UDP。他们要么不关心此阶段丢失的数据包,要么计划稍后实施控制机制。

  2. 在您提供的Messenger示例中,应用程序交换字符串。他们不需要发送任何其他信息,因为他们只想显示它们。当您与VPN通信时,您必须发送标头,以便VPN可以转发它收到的任何数据。