當前位置: 首頁>>代碼示例>>C#>>正文


C# Session.write方法代碼示例

本文整理匯總了C#中Tamir.SharpSsh.jsch.Session.write方法的典型用法代碼示例。如果您正苦於以下問題:C# Session.write方法的具體用法?C# Session.write怎麽用?C# Session.write使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Tamir.SharpSsh.jsch.Session的用法示例。


在下文中一共展示了Session.write方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: request

		public void request(Session session, Channel channel)
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);

			bool reply=waitForReply();
			if(reply)
			{
				channel.reply=-1;
			}

			packet.reset();
			buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST);
			buf.putInt(channel.getRecipient());
			buf.putString(Util.getBytes("subsystem"));
			buf.putByte((byte)(waitForReply() ? 1 : 0));
			buf.putString(Util.getBytes("sftp"));
			session.write(packet);

			if(reply)
			{
				while(channel.reply==-1)
				{
					try{System.Threading.Thread.Sleep(10);}
					catch//(Exception ee)
					{
					}
				}
				if(channel.reply==0)
				{
					throw new JSchException("failed to send sftp request");
				}
			}
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:34,代碼來源:RequestSftp.cs

示例2: request

		public void request(Session session, Channel channel)
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);

			packet.reset();
			buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
			buf.putInt(channel.getRecipient());
			buf.putString( Util.getBytes("signal"));
			buf.putByte((byte)(waitForReply() ? 1 : 0));
			buf.putString(Util.getBytes(signal));
			session.write(packet);
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:13,代碼來源:RequestSignal.cs

示例3: request

		public void request(Session session, Channel channel) 
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);

			// send
			// byte     SSH_MSG_CHANNEL_REQUEST(98)
			// uint32 recipient channel
			// string request type       // "shell"
			// boolean want reply        // 0
			packet.reset();
			buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
			buf.putInt(channel.getRecipient());
			buf.putString(Util.getBytes("shell"));
			buf.putByte((byte)(waitForReply() ? 1 : 0));
			session.write(packet);
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:17,代碼來源:RequestShell.cs

示例4: request

        public void request(Session session, Channel channel)
        {
            Buffer buf=new Buffer();
            Packet packet=new Packet(buf);

            packet.reset();
            buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
            buf.WriteInt(channel.getRecipient());
            buf.WriteString(Util.getBytes("pty-req"));
            buf.WriteByte((byte)(waitForReply() ? 1 : 0));
            buf.WriteString(Util.getBytes("vt100"));
            buf.WriteInt(80);
            buf.WriteInt(24);
            buf.WriteInt(640);
            buf.WriteInt(480);
            buf.WriteString(Util.getBytes(""));
            session.write(packet);
        }
開發者ID:yash0924,項目名稱:csharputils,代碼行數:18,代碼來源:RequestPtyReq.cs

示例5: request

		public void request(Session session, Channel channel)
		{
			Packet packet=session.packet;
			Buffer buf=session.buf;
			// send
			// byte     SSH_MSG_CHANNEL_REQUEST(98)
			// uint32 recipient channel
			// string request type       // "exec"
			// boolean want reply        // 0
			// string command
			packet.reset();
			buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
			buf.putInt(channel.getRecipient());
			buf.putString(new Str("exec").getBytes());
			buf.putByte((byte)(waitForReply() ? 1 : 0));
			buf.putString(new Str(command).getBytes());
			session.write(packet);
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:18,代碼來源:RequestExec.cs

示例6: start

		public virtual bool start(Session session)
		{
			Packet packet=session.packet;
			Buffer buf=session.buf;
			// send
			// byte      SSH_MSG_SERVICE_REQUEST(5)
			// string    service name "ssh-userauth"
			packet.reset();
			buf.putByte((byte)Session.SSH_MSG_SERVICE_REQUEST);
			buf.putString(Util.getBytes("ssh-userauth"));
			session.write(packet);

			// receive
			// byte      SSH_MSG_SERVICE_ACCEPT(6)
			// string    service name
			buf=session.read(buf);
			//System.out.println("read: 6 ? "+buf.buffer[5]);
			return buf.buffer[5]==6;
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:19,代碼來源:UserAuth.cs

示例7: request

		public void request(Session session, Channel channel) 
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);

			// byte      SSH_MSG_CHANNEL_REQUEST(98)
			// uint32 recipient channel
			// string request type        // "x11-req"
			// boolean want reply         // 0
			// boolean   single connection
			// string    x11 authentication protocol // "MIT-MAGIC-COOKIE-1".
			// string    x11 authentication cookie
			// uint32    x11 screen number
			packet.reset();
			buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
			buf.WriteInt(channel.getRecipient());
			buf.WriteString(Util.getBytes("x11-req"));
			buf.WriteByte((byte)(waitForReply() ? 1 : 0));
			buf.WriteByte((byte)0);
			buf.WriteString(Util.getBytes("MIT-MAGIC-COOKIE-1"));
			buf.WriteString(ChannelX11.getFakedCookie(session));
			buf.WriteInt(0);
			session.write(packet);
		}
開發者ID:soywiz,項目名稱:csharputils,代碼行數:24,代碼來源:RequestX11.cs

示例8: request

        public void request(Session session, Channel channel)
        {
            Buffer buf=new Buffer();
            Packet packet=new Packet(buf);

            //byte      SSH_MSG_CHANNEL_REQUEST
            //uint32    recipient_channel
            //string    "window-change"
            //boolean   FALSE
            //uint32    terminal width, columns
            //uint32    terminal height, rows
            //uint32    terminal width, pixels
            //uint32    terminal height, pixels
            packet.reset();
            buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST);
            buf.WriteInt(channel.getRecipient());
            buf.WriteString(Util.getBytes("window-change"));
            buf.WriteByte((byte)(waitForReply() ? 1 : 0));
            buf.WriteInt(width_columns);
            buf.WriteInt(height_rows);
            buf.WriteInt(width_pixels);
            buf.WriteInt(height_pixels);
            session.write(packet);
        }
開發者ID:yash0924,項目名稱:csharputils,代碼行數:24,代碼來源:RequestWindowChange.cs

示例9: init

		public override void init(Session session,
			byte[] V_S, byte[] V_C, byte[] I_S, byte[] I_C) 
		{
			this.session=session;
			this.V_S=V_S;      
			this.V_C=V_C;      
			this.I_S=I_S;      
			this.I_C=I_C;      

			//    sha=new SHA1();
			//    sha.init();
			try
			{
				Type t=Type.GetType(session.getConfig("sha-1"));
				sha=(HASH)(Activator.CreateInstance(t));
				sha.init();
			}
			catch(Exception ee)
			{
				Console.WriteLine(ee);
			}

			buf=new Buffer();
			packet=new Packet(buf);

			try
			{
				Type t=Type.GetType(session.getConfig("dh"));
				dh=(DH)(Activator.CreateInstance(t));
				dh.init();
			}
			catch(Exception ee)
			{
				throw ee;
			}

			dh.setP(p);
			dh.setG(g);

			// The client responds with:
			// byte  SSH_MSG_KEXDH_INIT(30)
			// mpint e <- g^x mod p
			//         x is a random number (1 < x < (p-1)/2)

			e=dh.getE();

			packet.reset();
			buf.putByte((byte)SSH_MSG_KEXDH_INIT);
			buf.putMPInt(e);
			session.write(packet);

			state=SSH_MSG_KEXDH_REPLY;
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:53,代碼來源:DHG1.cs

示例10: init

        //private byte[] f;
        public override void init(Session session,
            byte[] V_S, byte[] V_C, byte[] I_S, byte[] I_C)
        {
            this.session = session;
            this.V_S = V_S;
            this.V_C = V_C;
            this.I_S = I_S;
            this.I_C = I_C;

            //    sha=new SHA1();
            //    sha.init();

            try
            {
                Type t = Type.GetType(session.getConfig("sha-1"));
                sha = (HASH) (Activator.CreateInstance(t));
                sha.init();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            buf = new Buffer();
            packet = new Packet(buf);

            try
            {
                Type t = Type.GetType(session.getConfig("dh"));
                dh = (DH) (Activator.CreateInstance(t));
                dh.init();
            }
            catch (Exception e)
            {
                throw e;
            }

            packet.reset();
            buf.putByte(0x22);
            buf.putInt(min);
            buf.putInt(preferred);
            buf.putInt(max);
            session.write(packet);

            state = SSH_MSG_KEX_DH_GEX_GROUP;
        }
開發者ID:christianz,項目名稱:SharpSSH,代碼行數:47,代碼來源:DHGEX.cs

示例11: start

		public override bool start(Session session)
		{
			base.start(session);
			//System.out.println("UserAuthNone: start");
			Packet packet=session.packet;
			Buffer buf=session.buf;
			String username=session.username;

			byte[] _username=null;
			try{ _username=Util.getBytesUTF8(username); }
			catch
			{//(java.io.UnsupportedEncodingException e){
				_username=Util.getBytes(username);
			}

			// send
			// byte      SSH_MSG_USERAUTH_REQUEST(50)
			// string    user name
			// string    service name ("ssh-connection")
			// string    "none"
			packet.reset();
			buf.putByte((byte)Session.SSH_MSG_USERAUTH_REQUEST);
			buf.putString(_username);
			buf.putString(Util.getBytes("ssh-connection"));
			buf.putString(Util.getBytes("none"));
			session.write(packet);

			loop:
				while(true)
				{
					// receive
					// byte      SSH_MSG_USERAUTH_SUCCESS(52)
					// string    service name
					buf=session.read(buf);
					//System.out.println("UserAuthNone: read: 52 ? "+    buf.buffer[5]);
					if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_SUCCESS)
					{
						return true;
					}
					if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_BANNER)
					{
						buf.getInt(); buf.getByte(); buf.getByte();
						byte[] _message=buf.getString();
						byte[] lang=buf.getString();
						String message=null;
						try{ message=Util.getStringUTF8(_message); }
						catch
						{//(java.io.UnsupportedEncodingException e){
							message=Util.getString(_message);
						}
						if(userinfo!=null)
						{
							userinfo.showMessage(message);
						}
						goto loop;
					}
					if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_FAILURE)
					{
						buf.getInt(); buf.getByte(); buf.getByte(); 
						byte[] foo=buf.getString();
						int partial_success=buf.getByte();
						methods=Util.getString(foo);
						//System.out.println("UserAuthNONE: "+methods+
						//		   " partial_success:"+(partial_success!=0));
						//	if(partial_success!=0){
						//	  throw new JSchPartialAuthException(new String(foo));
						//	}
						break;
					}
					else
					{
						//      System.out.println("USERAUTH fail ("+buf.buffer[5]+")");
						throw new JSchException("USERAUTH fail ("+buf.buffer[5]+")");
					}
				}
			//throw new JSchException("USERAUTH fail");
			return false;
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:78,代碼來源:UserAuthNone.cs

示例12: start

        public override bool start(Session session)
        {
            //super.start(session);

            //Vector identities=JSch.identities;
            System.Collections.ArrayList identities=session.jsch.identities;

            Packet packet=session.packet;
            Buffer buf=session.buf;

            String passphrase=null;
            String username=session.username;

            byte[] _username=null;
            try{ _username= Util.getBytesUTF8( username); }
            catch
            {//(java.io.UnsupportedEncodingException e){
                _username=Util.getBytes(username);
            }

            for(int i=0; i<identities.Count; i++)
            {
                Identity identity=(Identity)(identities[i]);
                byte[] pubkeyblob=identity.getPublicKeyBlob();

                //System.out.println("UserAuthPublicKey: "+identity+" "+pubkeyblob);

                if(pubkeyblob!=null)
                {
                    // send
                    // byte      SSH_MSG_USERAUTH_REQUEST(50)
                    // string    user name
                    // string    service name ("ssh-connection")
                    // string    "publickey"
                    // boolen    FALSE
                    // string    plaintext password (ISO-10646 UTF-8)
                    packet.reset();
                    buf.WriteByte((byte)Session.SSH_MSG_USERAUTH_REQUEST);
                    buf.WriteString(_username);
                    buf.WriteString(Util.getBytes("ssh-connection"));
                    buf.WriteString(Util.getBytes("publickey"));
                    buf.WriteByte((byte)0);
                    buf.WriteString(Util.getBytes(identity.getAlgName()));
                    buf.WriteString(pubkeyblob);
                    session.write(packet);

                loop1:
                    while(true)
                    {
                        // receive
                        // byte      SSH_MSG_USERAUTH_PK_OK(52)
                        // string    service name
                        buf=session.read(buf);
                        //System.out.println("read: 60 ? "+    buf.buffer[5]);
                        if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_PK_OK)
                        {
                            break;
                        }
                        else if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_FAILURE)
                        {
                            //	System.out.println("USERAUTH publickey "+session.getIdentity()+
                            //			   " is not acceptable.");
                            break;
                        }
                        else if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_BANNER)
                        {
                            buf.ReadInt(); buf.ReadByte(); buf.ReadByte();
                            byte[] _message=buf.ReadString();
                            byte[] lang=buf.ReadString();
                            String message=null;
                            try{ message=Util.getStringUTF8(_message); }
                            catch
                            {//(java.io.UnsupportedEncodingException e){
                                message=Util.getString(_message);
                            }
                            if(userinfo!=null)
                            {
                                userinfo.showMessage(message);
                            }
                            goto loop1;
                        }
                        else
                        {
                            //System.out.println("USERAUTH fail ("+buf.buffer[5]+")");
                            //throw new JSchException("USERAUTH fail ("+buf.buffer[5]+")");
                            break;
                        }
                    }
                    if(buf.buffer[5]!=Session.SSH_MSG_USERAUTH_PK_OK)
                    {
                        continue;
                    }
                }

                //System.out.println("UserAuthPublicKey: identity.isEncrypted()="+identity.isEncrypted());

                int count=5;
                while(true)
                {
                    if((identity.isEncrypted() && passphrase==null))
//.........這裏部分代碼省略.........
開發者ID:yash0924,項目名稱:csharputils,代碼行數:101,代碼來源:UserAuthPublicKey.cs

示例13: delPort

		internal static void delPort(Session session, int rport)
		{
			lock(pool)
			{
				Object[] foo=null;
				for(int i=0; i<pool.size(); i++)
				{
					Object[] bar=(Object[])(pool.elementAt(i));
					if(bar[0]!=session) continue;
					if(((Integer)bar[1]).intValue()!=rport) continue;
					foo=bar;
					break;
				}
				if(foo==null)return;
				pool.removeElement(foo);	
			}

			Buffer buf=new Buffer(100); // ??
			Packet packet=new Packet(buf);

			try
			{
				// byte SSH_MSG_GLOBAL_REQUEST 80
				// string "cancel-tcpip-forward"
				// boolean want_reply
				// string  address_to_bind (e.g. "127.0.0.1")
				// uint32  port number to bind
				packet.reset();
				buf.putByte((byte) 80/*SSH_MSG_GLOBAL_REQUEST*/);
				buf.putString(new Str("cancel-tcpip-forward").getBytes());
				buf.putByte((byte)0);
				buf.putString(new Str("0.0.0.0").getBytes());
				buf.putInt(rport);
				session.write(packet);
			}
			catch(Exception e)
			{
				//    throw new JSchException(e.toString());
			}
		}
開發者ID:stux2000,項目名稱:dokan,代碼行數:40,代碼來源:ChannelForwardedTCPIP.cs

示例14: start

  public override bool start(Session session) {
//    super.start(session);
//System.out.println("UserAuthPassword: start");
    Packet packet=session.packet;
    Buffer buf=session.buf;
    String username=session.username;
    String password=session.password;
    String dest=username+"@"+session.host;
    if(session.port!=22){
      dest+=(":"+session.port);
    }

    while(true){
      if(password==null){
	if(userinfo==null){
	  //throw new JSchException("USERAUTH fail");
	  return false;
	}
	if(!userinfo.promptPassword("Password for "+dest)){
	  throw new JSchAuthCancelException("password");
	  //break;
	}
	password=userinfo.getPassword();
	if(password==null){
	  throw new JSchAuthCancelException("password");
	  //break;
	}
      }

      byte[] _username=null;
      try{ _username=Util.getBytesUTF8(username); }
      catch{//(java.io.UnsupportedEncodingException e){
	_username=Util.getBytes(username);
      }

      byte[] _password=null;
      try{ _password=Util.getBytesUTF8(password); }
      catch{//(java.io.UnsupportedEncodingException e){
	_password=Util.getBytes(password);
      }

      // send
      // byte      SSH_MSG_USERAUTH_REQUEST(50)
      // string    user name
      // string    service name ("ssh-connection")
      // string    "password"
      // boolen    FALSE
      // string    plaintext password (ISO-10646 UTF-8)
      packet.reset();
      buf.putByte((byte)Session.SSH_MSG_USERAUTH_REQUEST);
      buf.putString(_username);
      buf.putString(Util.getBytes("ssh-connection"));
      buf.putString(Util.getBytes("password"));
      buf.putByte((byte)0);
      buf.putString(_password);
      session.write(packet);

      loop:
      while(true){
	// receive
	// byte      SSH_MSG_USERAUTH_SUCCESS(52)
	// string    service name
	buf=session.read(buf);
	//System.out.println("read: 52 ? "+    buf.buffer[5]);
	if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_SUCCESS){
	  return true;
	}
	if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_BANNER){
	  buf.getInt(); buf.getByte(); buf.getByte();
	  byte[] _message=buf.getString();
	  byte[] lang=buf.getString();
	  String message=null;
	  try{ message=Util.getStringUTF8(_message); }
	  catch{//(java.io.UnsupportedEncodingException e){
	    message=Util.getString(_message);
	  }
	  if(userinfo!=null){
	    userinfo.showMessage(message);
	  }
	  goto loop;
	}
	if(buf.buffer[5]==Session.SSH_MSG_USERAUTH_FAILURE){
	  buf.getInt(); buf.getByte(); buf.getByte(); 
	  byte[] foo=buf.getString();
	  int partial_success=buf.getByte();
	  //System.out.println(new String(foo)+
	  //		 " partial_success:"+(partial_success!=0));
	  if(partial_success!=0){
	    throw new JSchPartialAuthException(Util.getString(foo));
	  }
	  break;
	}
	else{
//        System.out.println("USERAUTH fail ("+buf.buffer[5]+")");
//	  throw new JSchException("USERAUTH fail ("+buf.buffer[5]+")");
	  return false;
	}
      }
      password=null;
    }
//.........這裏部分代碼省略.........
開發者ID:stux2000,項目名稱:dokan,代碼行數:101,代碼來源:UserAuthPassword.cs

示例15: start

        public override bool start(Session session)
        {
            //System.out.println("UserAuthKeyboardInteractive: start");
            Packet packet = session.packet;
            Buffer buf = session.buf;
            String username = session.username;
            String dest = username + "@" + session.host;
            if (session.port != 22)
            {
                dest += (":" + session.port);
            }

            bool cancel = false;

            byte[] _username = null;
            try
            {
                _username = Encoding.UTF8.GetBytes(username);
            }
            catch
            {
                _username = Util.getBytes(username);
            }

            while (true)
            {
                // send
                // byte      SSH_MSG_USERAUTH_REQUEST(50)
                // string    user name (ISO-10646 UTF-8, as defined in [RFC-2279])
                // string    service name (US-ASCII) "ssh-userauth" ? "ssh-connection"
                // string    "keyboard-interactive" (US-ASCII)
                // string    language tag (as defined in [RFC-3066])
                // string    submethods (ISO-10646 UTF-8)
                packet.reset();
                buf.putByte((byte) Session.SSH_MSG_USERAUTH_REQUEST);
                buf.putString(_username);
                buf.putString(Util.getBytes("ssh-connection"));
                //buf.putString("ssh-userauth".getBytes());
                buf.putString(Util.getBytes("keyboard-interactive"));
                buf.putString(Util.getBytes(""));
                buf.putString(Util.getBytes(""));
                session.write(packet);

                bool firsttime = true;
                loop:
                while (true)
                {
                    // receive
                    // byte      SSH_MSG_USERAUTH_SUCCESS(52)
                    // string    service name
                    try
                    {
                        buf = session.read(buf);
                    }
                    catch (JSchException e)
                    {
                        e.GetType();
                        return false;
                    }
                    catch (IOException e)
                    {
                        e.GetType();
                        return false;
                    }
                    //System.out.println("read: 52 ? "+    buf.buffer[5]);
                    if (buf.buffer[5] == Session.SSH_MSG_USERAUTH_SUCCESS)
                    {
                        return true;
                    }
                    if (buf.buffer[5] == Session.SSH_MSG_USERAUTH_BANNER)
                    {
                        buf.getInt();
                        buf.getByte();
                        buf.getByte();
                        byte[] _message = buf.getString();
                        byte[] lang = buf.getString();
                        String message = null;
                        try
                        {
                            message = Util.getStringUTF8(_message);
                        }
                        catch
                        {
                            message = Util.getString(_message);
                        }
                        if (userinfo != null)
                        {
                            userinfo.showMessage(message);
                        }
                        goto loop;
                    }
                    if (buf.buffer[5] == Session.SSH_MSG_USERAUTH_FAILURE)
                    {
                        buf.getInt();
                        buf.getByte();
                        buf.getByte();
                        byte[] foo = buf.getString();
                        int partial_success = buf.getByte();
            //	  System.out.println(new String(foo)+
            //			     " partial_success:"+(partial_success!=0));
//.........這裏部分代碼省略.........
開發者ID:akrisiun,項目名稱:SharpSSH,代碼行數:101,代碼來源:UserAuthKeyboardInteractive.cs


注:本文中的Tamir.SharpSsh.jsch.Session.write方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。