Please do give it a try!
It's possible to launch an SFTP/SSH session on an already-connected Socket, so if you can get that code to work, then instead of calling "client.GetStream" (as in the article's example code), you could start a FileServer session on "client.Socket" using the following helper class that extends FileServer:
public class FileServerExt : FileServer
{
private ServerModuleHost _host;
public void Accept(Socket socket)
{
var host = _host;
if (host == null)
{
// Optionally, enable more modules in the CreateModuleHost call in addition to SFTP.
_host = host = CreateModuleHost(FileServerProtocol.Sftp);
}
host.Accept(socket);
}
}