写入VpnService输出流不会产生效果

时间:2019-05-17 03:36:27

标签: android vpn

我正在尝试使用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)
                    }
                }
            }
        }
  1. 通过本地udp服务将IP数据包发送到远程代理服务器(将DatagramPacket用作IP数据包的容器,然后发送。.
  2. 获取本地udp服务的响应和内部数据(即响应中的IP数据包)。
  3. 写入FileOutputStream。
 fun responseUdpPacket(b: ByteArray?) {
        try {
            b?.let { it ->
                ous?.write(it, 0, it.size)
            }
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }

我现在处在从udp服务接收到数据包的情况下,但是当写入FileOutputStream时,它没有任何作用。不是联网的。我想知道哪里出了问题吗?

0 个答案:

没有答案