PortManagerPortManagerClientPortRouDiClientPortRouDiServerPortRouDiServerPortRouDiClient tries to connect (Server not present)tryGetCaProMessageCaproMessageType::CONNECTsendToAllMatchingServerPortsdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::NACK)cxx::nulloptServer offers service (Client not present)tryGetCaProMessageCaproMessageType::OFFERsendToAllMatchingClientPortsClient tries to connect (Server present)tryGetCaProMessageCaproMessageType::CONNECTsendToAllMatchingServerPortsdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::CONNECT)CaproMessageType::ACKdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::ACK)cxx::nulloptServer offers service (Client present)tryGetCaProMessageCaproMessageType::OFFERsendToAllMatchingClientPortsdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::OFFER)CaproMessageType::CONNECTdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::CONNECT)CaproMessageType::ACKdispatchCaProMessageAndGetPossibleResponse(CaproMessageType::ACK)cxx::nullopt