• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# jsch.Packet类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Tamir.SharpSsh.jsch.Packet的典型用法代码示例。如果您正苦于以下问题:C# Packet类的具体用法?C# Packet怎么用?C# Packet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Packet类属于Tamir.SharpSsh.jsch命名空间,在下文中一共展示了Packet类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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


示例16: Session

		internal Session(JSch jsch)  
		{
			;
			this.jsch=jsch;
			buf=new Buffer();
			packet=new Packet(buf);
		}
开发者ID:MatanDavidCohen,项目名称:StockAnalyzerWin,代码行数:7,代码来源:Session.cs


示例17: run

		public void run()
		{
			thread=this;

			byte[] foo;
			Buffer buf=new Buffer();
			Packet packet=new Packet(buf);
			int i=0;
			Channel channel;
			int[] start=new int[1];
			int[] length=new int[1];
			KeyExchange kex=null;

			try
			{
				while(_isConnected &&
					thread!=null)
				{
					buf=read(buf);
					int msgType=buf.buffer[5]&0xff;
					//      if(msgType!=94)
					//System.Console.WriteLine("read: 94 ? "+msgType);

					if(kex!=null && kex.getState()==msgType)
					{
						bool result=kex.next(buf);
						if(!result)
						{
							throw new JSchException("verify: "+result);
						}
						continue;
					}

					switch(msgType)
					{
						case SSH_MSG_KEXINIT:
							//System.Console.WriteLine("KEXINIT");
							kex=receive_kexinit(buf);
							break;

						case SSH_MSG_NEWKEYS:
							//System.Console.WriteLine("NEWKEYS");
							send_newkeys();
							receive_newkeys(buf, kex);
							kex=null;
							break;

						case SSH_MSG_CHANNEL_DATA:
							buf.getInt();
							buf.getByte();
							buf.getByte();
							i=buf.getInt();
							channel=Channel.getChannel(i, this);
							foo=buf.getString(start, length);
							if(channel==null)
							{
								break;
							}
							try
							{
								channel.write(foo, start[0], length[0]);
							}
							catch(Exception e)
							{
								//System.Console.WriteLine(e);
								try{channel.disconnect();}
								catch(Exception ee){}
								break;
							}
							int len=length[0];
							channel.setLocalWindowSize(channel.lwsize-len);
							if(channel.lwsize<channel.lwsize_max/2)
							{
								packet.reset();
								buf.putByte((byte)SSH_MSG_CHANNEL_WINDOW_ADJUST);
								buf.putInt(channel.getRecipient());
								buf.putInt(channel.lwsize_max-channel.lwsize);
								write(packet);
								channel.setLocalWindowSize(channel.lwsize_max);
							}
							break;

						case SSH_MSG_CHANNEL_EXTENDED_DATA:
							buf.getInt();
							buf.getShort();
							i=buf.getInt();
							channel=Channel.getChannel(i, this);
							buf.getInt();                   // data_type_code == 1
							foo=buf.getString(start, length);
							//System.Console.WriteLine("stderr: "+new String(foo,start[0],length[0]));
							if(channel==null)
							{
								break;
							}
							//channel.write(foo, start[0], length[0]);
							channel.write_ext(foo, start[0], length[0]);

							len=length[0];
							channel.setLocalWindowSize(channel.lwsize-len);
							if(channel.lwsize<channel.lwsize_max/2)
//.........这里部分代码省略.........
开发者ID:MatanDavidCohen,项目名称:StockAnalyzerWin,代码行数:101,代码来源:Session.cs


示例18: _write

		private void _write(Packet packet) 
		{
			encode(packet);
			if(io!=null)
			{
				io.put(packet);
				seqo++;
			}
		}
开发者ID:MatanDavidCohen,项目名称:StockAnalyzerWin,代码行数:9,代码来源:Session.cs


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


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



注:本文中的Tamir.SharpSsh.jsch.Packet类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# jsch.Session类代码示例发布时间:2022-05-26
下一篇:
C# jsch.JSch类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap