public override string ToString() { if (_fd == null) { return("<closed>"); } string s; if (_incoming && !_bound) { s = "local address = " + Network.AddrToString(_addr); } else if (_state == StateNotConnected) { s = "local address = " + Network.LocalAddrToString(Network.GetLocalAddress(_fd)); if (_peerAddr != null) { s += "\nremote address = " + Network.AddrToString(_peerAddr); } } else { s = Network.FdToString(_fd); } if (_mcastAddr != null) { s += "\nmulticast address = " + Network.AddrToString(_mcastAddr); } return(s); }
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 { Debug.Assert(_multicastInterface != null); 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>"); } }