#pragma once #include #include #using #using using namespace System; using namespace System::Net; using namespace System::Net::Sockets; namespace DroneSimulator { public ref class NetClient { public: ref class ConnectData { public: bool Connect; Socket^ Server; ConnectData(bool connect, Socket^ server); }; ref class ReceiveData { public: array^ Buffer; int Size; Socket^ Server; ReceiveData(array^ buffer, int size, Socket^ server); }; private: ref class ServerData { public: literal int size = 1024; array^ buffer = gcnew array(size); }; bool Connected; Socket^ ServerSocket; ServerData^ DataServer; public: delegate void ClientCallback(Object^ o); private: ClientCallback^ ConnectionCallback; ClientCallback^ ReceiveCallback; public: NetClient(); // Добавлен конструктор enum class ClientState { Error, Connected, Stop }; ClientState Connect(String^ Addr, int Port, ClientCallback^ Connection, ClientCallback^ Receive); void Close(); void Send(array^ data); private: void ReadCallback(IAsyncResult^ ar); }; }