本文整理汇总了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;未经允许,请勿转载。 |
请发表评论