public UdpIpEndPoint GetAnyEndPoint(int port)
        {
            var anyEndPoint = new IPEndPoint(IPAddress.Any, port);
            var result      = new UdpIpEndPoint(anyEndPoint.Address.ToString(), port);

            return(result);
        }
        public UdpIpEndPoint GetBroadCastEndPoint(int port)
        {
            var broadcastEndpoint = new IPEndPoint(IPAddress.Broadcast, port);
            var result            = new UdpIpEndPoint(broadcastEndpoint.Address.ToString(), port);

            return(result);
        }
        public void SetEndPoint(UdpIpEndPoint endPoint)
        {
            if (InternalUdpClient != null)
            {
                InternalUdpClient.Close();
            }

            InternalUdpClient = new UdpClient(ConvertUdpEndPointToIpEndPoint(endPoint));
        }
        // This only creates an IP address for validation purposes. Its result contains a string representation of the IpAddress
        public UdpIpEndPoint ParseIpEndPoint(string address, int port)
        {
            try {
                var ipAddress = IPAddress.Parse(address);
                var result    = new UdpIpEndPoint(ipAddress.ToString(), port);

                return(result);
            } catch (Exception e) {
                throw new BonaVirtualGamePadException("Failed to create IPEndPoint", e);
            }
        }
        public UdpIpEndPoint ConvertIpEndPointToUdpEndPoint(IPEndPoint ipEndPoint)
        {
            var result = new UdpIpEndPoint(ipEndPoint.Address.ToString(), ipEndPoint.Port);

            return(result);
        }
        public IPEndPoint ConvertUdpEndPointToIpEndPoint(UdpIpEndPoint udpIpEndPoint)
        {
            var result = new IPEndPoint(IPAddress.Parse(udpIpEndPoint.IpAddress), udpIpEndPoint.Port);

            return(result);
        }
 public void SendPackage(byte[] data, int packageLength, UdpIpEndPoint reciever)
 {
     InternalUdpClient.Send(data, packageLength, ConvertUdpEndPointToIpEndPoint(reciever));
 }