public unsafe NetworkInterfaceEndPoint CreateEndPoint(ushort port) { ManagerAccessHandle.Complete(); int id = 0; if (port == 0) { while (id == 0) { port = RandomHelpers.GetRandomUShort(); if (!m_IPCChannels.TryGetValue(port, out _)) { id = m_IPCChannels.Count() + 1; m_IPCChannels.TryAdd(port, id); } } } else { if (!m_IPCChannels.TryGetValue(port, out id)) { id = m_IPCChannels.Count() + 1; m_IPCChannels.TryAdd(port, id); } } var endpoint = default(NetworkInterfaceEndPoint); endpoint.dataLength = 4; *(int *)endpoint.data = id; return(endpoint); }