Field is network protocol agnostic, but it needs either UDP or TCP client to handle messaging between clients.
Setting Up With TCP Client
shared_ptr<IDiarkisField> field =shared_ptr<IDiarkisField>(DiarkisCreateField());REG_EVENT(field->GetDisappearEvent(), [this](void*,conststring& remoteUid){this->OnDisappear(e);});REG_EVENT(field->GetResponseSyncInitEvent(), [this](void*,constvector<vector<uint8_t>>& list){this->OnSyncInit(e);});REG_EVENT(field->GetSyncEvent(), [this](void*,constvector<uint8_t>& msg){this->OnSync(e);});field->SetupAsTcp(diarkisTcpClient);
Setting Up With UDP Client
shared_ptr<IDiarkisField> field =shared_ptr<IDiarkisField>(DiarkisCreateField());REG_EVENT(field->GetDisappearEvent(), [this](void*,conststring& remoteUid){ /* Do your thing here */});REG_EVENT(field->GetResponseSyncInitEvent(), [this](void*,constvector<vector<uint8_t>>& list){ /* Do your thing here */});REG_EVENT(field->GetSyncEvent(), [this](void*,constvector<uint8_t>& msg){ /* Do your thing here */});field->SetupAsTcp(diarkisUdpClient);