(void)startTunnelWithOptions:(NSDictionary *)options completionHandler:(void (^)(NSError *))completionHandler
log4cplusinfo("XDXVPNManager", "XDXPacketTunnelManager - Start Tunel !");
NEPacketTunnelNetworkSettings *tunnelNetworkSettings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@XDXNETREMOTEADDRESS];
tunnelNetworkSettings.MTU = [NSNumber numberWithInteger:XDXNETMTU];
tunnelNetworkSettings.IPv4Settings = [[NEIPv4Settings alloc] initWithAddresses:[NSArray arrayWithObjects:@XDXNETTUNNELIPADDRESS, nil] subnetMasks:[NSArray arrayWithObjects:@XDXNETSUBNETMASKS, nil]];
tunnelNetworkSettings.IPv4Settings.includedRoutes = @[[NEIPv4Route defaultRoute]];
[self setTunnelNetworkSettings:tunnelNetworkSettings completionHandler:^(NSError * Nullable error) {
if (error == nil) {
log4cplusinfo("XDXVPNManager", "XDXPacketTunnelManager - Start Tunel Success !");
completionHandler(nil);
}else {
log4cpluserror("XDXVPNManager", "XDXPacketTunnelManager - Start Tunel Failed - %s !",error.debugDescription.UTF8String);
completionHandler(error);
return;
}
}];
weak typeof(self) weakSelf = self;
[self.packetFlow readPacketsWithCompletionHandler:^(NSArray<NSData *> * Nonnull packets, NSArray<NSNumber *> * _Nonnull protocols) {
BOOL ret = [weakSelf.packetFlow writePackets:packets withProtocols:protocols];
}];
}
ret == YES, But the phone connect to my hot can not receive the packet, and the debug navigator no network data