private void CloseSocket(ProxySocketTun sock) { lock (this) { if (sock != null) { ProxySocketTun s = sock; try { s.Shutdown(SocketShutdown.Both); } catch { } try { s.Close(); } catch { } } } }
public void Close() { lock (this) { if (_closed) { return; } _closed = true; } ResetTimeout(0); Thread.Sleep(100); if (_remote != null) { try { _remote.Shutdown(SocketShutdown.Both); _remote.Close(); } catch (SocketException e) { Logging.LogUsefulException(e); } } if (_local != null) { try { _local.Shutdown(SocketShutdown.Both); _local.Close(); } catch (Exception e) { Logging.LogUsefulException(e); } } }