我正在尝试使用VpnService来实现代理Internet功能(我是这方面的新手,并且我不会英语,并且正在使用翻译软件)。 我的项目流程如下: 1.通过VpnService拦截所有IP数据包。
val pfd = Builder().let {
it.setMtu(1500)
it.addAddress("10.8.0.2", 32)
it.addRoute("0.0.0.0", 0)
// it.addDnsServer("114.114.114.114")
it.setSession("test")
return@let it.establish()
}
pfd.fileDescriptor.let {
ous = FileOutputStream(it)
val ins = FileInputStream(it)
var size = 0
ins.use { input ->
ous.use {
while (size != -1 && isRunning) {
while (ins.read(byteArray).also { size = it } > 0 && isRunning) {
if (MUDPService.instance?.isStop() == true) {
isRunning = false
}
onIpPacketUdpSend(mIPHeader, size)
}
Thread.sleep(20)
}
}
}
}
fun responseUdpPacket(b: ByteArray?) {
try {
b?.let { it ->
ous?.write(it, 0, it.size)
}
} catch (e: IOException) {
e.printStackTrace()
}
}
我现在处在从udp服务接收到数据包的情况下,但是当写入FileOutputStream时,它没有任何作用。不是联网的。我想知道哪里出了问题吗?