停止 *** 隧道不会断开 iOS 中的 *** 连接

Posted

技术标签:

【中文标题】停止 *** 隧道不会断开 iOS 中的 *** 连接【英文标题】:stop***Tunnel is not disconnecting the *** connection in iOS 【发布时间】:2022-01-03 14:14:27 【问题描述】:

我已经实现了一个成功的 *** 连接。但是当我在连接 *** 时关闭并打开应用程序时,我无法断开 ***。

public func connect***() 
    //For no known reason the process of saving/loading the *** configurations fails.On the 2nd time it works
    Log.d(message:  "connect***")
    NSLog("Connect***")
    self.***Manager.loadFromPreferences(completionHandler: self.***LoadHandler)
    NotificationCenter.default.addObserver(forName: NSNotification.Name.NE***StatusDidChange, object: nil , queue: nil) 
        notification in
        let ne***conn = notification.object as! NE***Connection
        let status = ne***conn.status
        self.***Delegate?.checkNES(status: status)
    


public func disconnect***() ->Void 
    Log.d(message:  "Disconnect *** Called")
    Log.d(message: "Log Disconnect *** Called")
    
    print("***Manager:disconnect*** \(self.***Manager.connection) ") // object available
    
    self.***Manager.connection.stop***Tunnel()

我不知道为什么它没有断开连接。

【问题讨论】:

一团糟,但是在创建新的NETunnelProviderManager 并使用saveToPreferences() 将其保存到首选项后,您总是需要调用tunnelProvider.loadFromPreferences()。所以也许这就是原因。 您能否向我推荐任何符合您想法的资源?这将非常有帮助。我已经被困在这里3天了。 【参考方案1】:

loadFromPreferences闭包内调用stop***Tunnel()

NE***Manager.shared().loadFromPreferences  error in
  assert(error == nil, "Failed to load preferences: \(error!.localizedDescription)")
  NE***Manager.shared().connection.stop***Tunnel()

【讨论】:

以上是关于停止 *** 隧道不会断开 iOS 中的 *** 连接的主要内容,如果未能解决你的问题,请参考以下文章

C# TcpClient 不会注册断开连接

如何从客户端断开和重新连接 socket.io?

(接上一条)解决ssh隧道断开自动重连的问题

Socket.io 不会在断开连接时向房间发送消息

Xcode。无法在断点处停止

数据包隧道提供商 IOS 中的动态 DNS