System.Net.Sockets.DualSocketMultipleConnectAsync.GetNextAddress C# (CSharp) Method

GetNextAddress() protected method

protected GetNextAddress ( Socket &attemptSocket ) : IPAddress
attemptSocket Socket
return IPAddress
        protected override IPAddress GetNextAddress(out Socket attemptSocket)
        {
            IPAddress rval = null;
            attemptSocket = null;

            while (attemptSocket == null)
            {
                if (_nextAddress >= _addressList.Length)
                {
                    return null;
                }

                rval = _addressList[_nextAddress];
                ++_nextAddress;

                if (rval.AddressFamily == AddressFamily.InterNetworkV6)
                {
                    attemptSocket = _socket6;
                }
                else if (rval.AddressFamily == AddressFamily.InterNetwork)
                {
                    attemptSocket = _socket4;
                }
            }

            return rval;
        }