public override string ToString() { try { var sb = new StringBuilder(); if (_incoming) { sb.Append("local address = " + Network.LocalAddrToString(Network.GetLocalAddress(Socket))); if (_peerAddr != null) { sb.Append($"\nremote address = {_peerAddr}"); } } else { sb.Append(Network.SocketToString(Socket)); } if (MulticastAddress != null) { sb.Append($"\nmulticast address = {MulticastAddress}"); } List <string> interfaces; if (MulticastAddress == null) { interfaces = Network.GetHostsForEndpointExpand(_addr.ToString(), Network.EnableBoth, true); } else { interfaces = Network.GetInterfacesForMulticast(_multicastInterface, Network.GetIPVersion(MulticastAddress.Address)); } if (interfaces.Count != 0) { sb.Append("\nlocal interfaces = "); sb.Append(string.Join(", ", interfaces)); } return(sb.ToString()); } catch (ObjectDisposedException) { return("<closed>"); } }
public string ToDetailedString() { var s = new StringBuilder(ToString()); List <string> intfs; if (_mcastAddr == null) { intfs = Network.GetHostsForEndpointExpand(Network.EndpointAddressToString(_addr), _communicator.IPVersion, true); } else { Debug.Assert(_mcastInterface != null); intfs = Network.GetInterfacesForMulticast(_mcastInterface, Network.GetIPVersion(_mcastAddr.Address)); } if (intfs.Count != 0) { s.Append("\nlocal interfaces = "); s.Append(string.Join(", ", intfs)); } return(s.ToString()); }