¿Hay alguna forma de get el descriptor de socket del túnel VPN iniciado en iPhone para poder utilizarlo en una biblioteca de C ++

En la aplicación de ejemplo simpleTunnel proporcionada por Apple, la aplicación de contenedor y el proveedor de túnel de packages utilizan IPC para la comunicación.

Cada vez que se activa el button de alternar, se invoca la API startVPNTunnel () y el sistema operativo inicia el proveedor de túnel de packages, que a su vez llama al método overrided startTunnelWithOptions () . Aquí es donde comenzamos nuestra connection con el server VPN. startTunnelWithOptions a su vez llama a startTunnel que llama a createTCPConnectionToEndpoint ( connection = provider.createTCPConnectionToEndpoint (endpoint, enableTLS: false, TLSParameters: nil, delegate: nil) )

¿Cómo obtenemos el descriptor de socket de esta connection (para poder utilizarlo en otra biblioteca de C ++ que envía SSL y otros posts personalizados)? (connnection es una instancia de la class NWTCPConnection , pero NWTCPConnection no parece contener el descriptor de socket)

No estoy seguro de que te haya entendido, pero si buscas el descriptor de file del socket, no puedes getlo.

No he visto una manera de get un enchufe de ella. Esa es la razón por la cual exponen la lectura / escritura / cancelación API de alto nivel en NWTCPConnection .

Sin embargo, createTCPConnectionToEndpoint no es obligatorio. Es solo un método de conveniencia. Puede hacer todo en un nivel de socket e ignorar esta API (si funciona mejor para usted).