forked from CPL/Simulator
update
This commit is contained in:
@ -17,8 +17,9 @@ namespace DroneSimulator
|
||||
|
||||
public class ReceiveData
|
||||
{
|
||||
|
||||
public int ID;
|
||||
public byte[]? Buffer;
|
||||
public byte[] Buffer;
|
||||
public int Size;
|
||||
|
||||
public Socket? Client;
|
||||
@ -28,7 +29,8 @@ namespace DroneSimulator
|
||||
{
|
||||
public int ID;
|
||||
public Socket? workSocket = null;
|
||||
public byte[] buffer;
|
||||
public const int count = 1024;
|
||||
public byte[] buffer = new byte[count];
|
||||
}
|
||||
|
||||
private int SocketID = 0;
|
||||
@ -36,7 +38,7 @@ namespace DroneSimulator
|
||||
private Socket? ServerSocket;
|
||||
private List<ClientData> ClientSockets = new List<ClientData>();
|
||||
|
||||
public delegate int ServerCallback(object o);
|
||||
public delegate void ServerCallback(object o);
|
||||
|
||||
private ServerCallback? ConnectionCallback;
|
||||
private ServerCallback? ReceiveCallback;
|
||||
@ -99,11 +101,9 @@ namespace DroneSimulator
|
||||
|
||||
ClientSockets.Add(clientData);
|
||||
|
||||
int size = ConnectionCallback(new ConnectData { ID = clientData.ID, Connect = true, Count = ClientSockets.Count, Client = handler });
|
||||
ConnectionCallback(new ConnectData { ID = clientData.ID, Connect = true, Count = ClientSockets.Count, Client = handler });
|
||||
|
||||
clientData.buffer=new byte[size];
|
||||
|
||||
handler.BeginReceive(clientData.buffer, 0, size, 0, new AsyncCallback(ReadCallback), clientData);
|
||||
handler.BeginReceive(clientData.buffer, 0, ClientData.count, 0, new AsyncCallback(ReadCallback), clientData);
|
||||
}
|
||||
else handler.Close();
|
||||
|
||||
@ -130,13 +130,11 @@ namespace DroneSimulator
|
||||
return;
|
||||
}
|
||||
|
||||
int size = ReceiveCallback(new ReceiveData { ID = cd.ID, Buffer = cd.buffer, Size = bytes, Client = cd.workSocket });
|
||||
|
||||
cd.buffer = new byte[size];
|
||||
ReceiveCallback(new ReceiveData { ID = cd.ID, Buffer = cd.buffer, Size = bytes, Client = cd.workSocket });
|
||||
|
||||
try
|
||||
{
|
||||
cd.workSocket?.BeginReceive(cd.buffer, 0, size, 0, new AsyncCallback(ReadCallback), cd);
|
||||
cd.workSocket?.BeginReceive(cd.buffer, 0, ClientData.count, 0, new AsyncCallback(ReadCallback), cd);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
Reference in New Issue
Block a user