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


C# jsch.Packet類代碼示例

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


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

示例1: run

 public void run()
 {
     Buffer buf=new Buffer(300); // ??
     Packet packet=new Packet(buf);
     thread=this;
     try
     {
         ss.Start();
         while(thread!=null)
         {
             Socket socket=ss.AcceptSocket();
             socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, 1);
             NetworkStream ns = new NetworkStream(socket);
             Stream ins= ns;
             Stream outs=ns;
             ChannelDirectTCPIP channel=new ChannelDirectTCPIP();
             channel.init();
             channel.setInputStream(ins);
             channel.setOutputStream(outs);
                 session.addChannel(channel);
             ((ChannelDirectTCPIP)channel).setHost(host);
             ((ChannelDirectTCPIP)channel).setPort(rport);
             ((ChannelDirectTCPIP)channel).setOrgIPAddress( ((IPEndPoint)socket.RemoteEndPoint).Address.ToString() );
             ((ChannelDirectTCPIP)channel).setOrgPort(((IPEndPoint)socket.RemoteEndPoint).Port);
             channel.connect();
             if(channel.exitstatus!=-1)
             {
             }
         }
     }
     catch
     {
         //System.out.println("! "+e);
     }
 }
開發者ID:mzkabbani,項目名稱:cSharpProjects,代碼行數:35,代碼來源:PortWatcher.cs

示例2: run

 public override void run()
 {
     //    thread=Thread.currentThread();
     Buffer buf=new Buffer();
     Packet packet=new Packet(buf);
     int i=0;
     try
     {
         while(isConnected() &&
             thread!=null &&
             io!=null &&
             io.ins!=null)
                        {
                            i=io.ins.Read(buf.buffer, 14, buf.buffer.Length-14);
                            if(i==0)continue;
                            if(i==-1)
                            {
                                eof();
                                break;
                            }
                            if(_close)break;
                            packet.reset();
                            buf.putByte((byte)Session.SSH_MSG_CHANNEL_DATA);
                            buf.putInt(recipient);
                            buf.putInt(i);
                            buf.skip(i);
                            session.write(packet, this, i);
                        }
     }
     catch//(Exception e)
     {
         //System.out.println("ChannelShell.run: "+e);
     }
     thread=null;
 }
開發者ID:mzkabbani,項目名稱:cSharpProjects,代碼行數:35,代碼來源:ChannelShell.cs

示例3: 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

示例4: 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

示例5: run

		public override void run()
		{
			//System.out.println(this+":run >");
			/*
				if(thread!=null){ return; }
				thread=Thread.currentThread();
			*/

			//    Buffer buf=new Buffer();
			Buffer buf=new Buffer(rmpsize);
			Packet packet=new Packet(buf);
			int i=-1;
			try
			{
				while(isConnected() &&
					thread!=null && 
					io!=null && 
					io.ins!=null)
				{
					i=io.ins.Read(buf.buffer, 
						14,    
						buf.buffer.Length-14
						-32 -20 // padding and mac
						);
					if(i==0)continue;
					if(i==-1)
					{
						eof();
						break;
					}
					if(_close)break;
					packet.reset();
					buf.WriteByte((byte)Session.SSH_MSG_CHANNEL_DATA);
					buf.WriteInt(recipient);
					buf.WriteInt(i);
					buf.Skip(i);
					session.write(packet, this, i);
				}
			}
			catch(Exception e)
			{
				Console.WriteLine("# ChannelSession.run");
				Console.WriteLine(e);
			}
			if(thread!=null)
			{
				//lock(thread){ System.Threading.Monitor.PulseAll(this);/*thread.notifyAll();*/ }
			}
			thread=null;
			//System.out.println(this+":run <");
		}
開發者ID:soywiz,項目名稱:csharputils,代碼行數:51,代碼來源:ChannelSession.cs

示例6: connect

        public override void connect()
        {
            try
            {
                Buffer buf=new Buffer(150);
                Packet packet=new Packet(buf);
                // send
                // byte   SSH_MSG_CHANNEL_OPEN(90)
                // string channel type         //
                // uint32 sender channel       // 0
                // uint32 initial window size  // 0x100000(65536)
                // uint32 maxmum packet size   // 0x4000(16384)

                packet.reset();
                buf.putByte((byte)90);
                buf.putString(Util.getBytes("direct-tcpip"));
                buf.putInt(id);
                buf.putInt(lwsize);
                buf.putInt(lmpsize);
                buf.putString(Util.getBytes(host));
                buf.putInt(port);
                buf.putString(Util.getBytes(originator_IP_address));
                buf.putInt(originator_port);
                session.write(packet);
                try
                {
                    while(this.getRecipient()==-1)
                    {
                        //Thread.sleep(500);
                        System.Threading.Thread.Sleep(10);
                    }
                }
                catch
                {
                }

                if(this.eof_remote)
                {      // failed to open
                    disconnect();
                    return;
                }

                thread=new Thread(new ThreadStart(this.run));
                thread.Start();
            }
            catch
            {
            }
        }
開發者ID:mzkabbani,項目名稱:cSharpProjects,代碼行數:49,代碼來源:ChannelDirectTCPIP.cs

示例7: 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

示例8: 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

示例9: connect

        public virtual void connect()
        {
            if(!isConnected()){
              throw new JSchException("session is down");
            }
            try{
              Buffer buf=new Buffer(100);
              Packet packet=new Packet(buf);
              // send
              // byte   SSH_MSG_CHANNEL_OPEN(90)
              // string channel type         //
              // uint32 sender channel       // 0
              // uint32 initial window size  // 0x100000(65536)
              // uint32 maxmum packet size   // 0x4000(16384)
              packet.reset();
              buf.putByte((byte)90);
              buf.putString(this.type);
              buf.putInt(this.id);
              buf.putInt(this.lwsize);
              buf.putInt(this.lmpsize);
              session.write(packet);

              int retry=1000;
              while(this.getRecipient()==-1 &&
            session.IsConnected() &&
            retry>0){
            try{System.Threading.Thread.Sleep(50);}catch{}
            retry--;
              }
              if(!session.IsConnected()){
            throw new JSchException("session is down");
              }
              if(retry==0){
            throw new JSchException("channel is not opened.");
              }
              start();
            }
            catch(Exception e){
              if(e is JSchException) throw (JSchException)e;
            }
        }
開發者ID:mzkabbani,項目名稱:cSharpProjects,代碼行數:41,代碼來源:Channel.cs

示例10: 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

示例11: 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

示例12: encode

		// encode will bin invoked in write with synchronization.
		public void encode(Packet packet) 
		{
			//System.Console.WriteLine("encode: "+packet.buffer.buffer[5]);
			//System.Console.WriteLine("        "+packet.buffer.index);
			//if(packet.buffer.buffer[5]==96){
			//Thread.dumpStack();
			//}
			if(deflater!=null)
			{
				packet.buffer.index=deflater.compress(packet.buffer.buffer,
					5, packet.buffer.index);
			}
			if(c2scipher!=null)
			{
				packet.padding(c2scipher.getIVSize());
				int pad=packet.buffer.buffer[4];
				lock(random)
				{
					random.fill(packet.buffer.buffer, packet.buffer.index-pad, pad);
				}
			}
			else
			{
				packet.padding(8);
			}
			byte[] mac=null;
			if(c2smac!=null)
			{
				c2smac.update(seqo);
				c2smac.update(packet.buffer.buffer, 0, packet.buffer.index);
				mac=c2smac.doFinal();
			}
			if(c2scipher!=null)
			{
				byte[] buf=packet.buffer.buffer;
				c2scipher.update(buf, 0, packet.buffer.index, buf, 0);
			}
			if(mac!=null)
			{
				packet.buffer.putByte(mac);
			}
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:43,代碼來源:Session.cs

示例13: sendKeepAliveMsg

		public void sendKeepAliveMsg()
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);
			packet.reset();
			buf.putByte((byte)SSH_MSG_GLOBAL_REQUEST);
			buf.putString(keepalivemsg);
			buf.putByte((byte)1);
			write(packet);
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:10,代碼來源:Session.cs

示例14: sendIgnore

		public void sendIgnore() 
		{
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);
			packet.reset();
			buf.putByte((byte)SSH_MSG_IGNORE);
			write(packet);
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:8,代碼來源:Session.cs

示例15: setPortForwarding

		private void setPortForwarding(int rport) 
		{
			lock(grr)
			{
				Buffer buf=new Buffer(100); // ??
				Packet packet=new Packet(buf);

				try
				{
					// byte SSH_MSG_GLOBAL_REQUEST 80
					// String "tcpip-forward"
					// bool want_reply
					// String  address_to_bind
					// uint32  port number to bind
					packet.reset();
					buf.putByte((byte) SSH_MSG_GLOBAL_REQUEST);
					buf.putString( new String( "tcpip-forward" ).getBytes());
					//      buf.putByte((byte)0);
					buf.putByte((byte)1);
					buf.putString(new String("0.0.0.0").getBytes());
					buf.putInt(rport);
					write(packet);
				}
				catch(Exception e)
				{
					throw new JSchException(e.ToString());
				}

				grr.setThread(Thread.currentThread());
				try{ Thread.Sleep(10000);}
				catch(Exception e)
				{
				}
				int reply=grr.getReply();
				grr.setThread(null);
				if(reply==0)
				{
					throw new JSchException("remote port forwarding failed for listen port "+rport);
				}
			}
		}
開發者ID:MatanDavidCohen,項目名稱:StockAnalyzerWin,代碼行數:41,代碼來源:Session.cs


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