Exemple #1
0
        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);
        }