Возможно, что Gist основан на более старой версии SSH.NET.
Глядя на исходный код , ожидается сообщение об ошибке. _listener
- это Socket
, а не TcpListener
:
_listener = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp) {NoDelay = true};
На самом деле, я думаю, что просто изменение состава с TcpListener
на Socket
решит вашу проблему, поскольку Socket
также имеет свойство LocalEndPoint
.
// Hack to allow dynamic local ports, ForwardedPortLocal should expose _listener.LocalEndpoint
var listener = (Socket)typeof (ForwardedPortLocal).GetField("_listener", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(port);
localPort = ((System.Net.IPEndPoint)listener.LocalEndPoint).Port;