Exemple #1
0
        private void IPEndPointToNative(IPEndPoint endPoint, out rtl.__struct_sockaddr_in lIPv4, out rtl.__struct_sockaddr_in6 lIPv6, out void *ipPointer, out int ipSize)
        {
            switch (endPoint.AddressFamily)
            {
            case AddressFamily.InterNetworkV6:
                lIPv6.sin6_family = AddressFamily.InterNetworkV6;
                                        #if toffee || darwin
                lIPv6.sin6_port = htons(endPoint.Port);
                                        #else
                lIPv6.sin6_port = rtl.htons(endPoint.Port);
                                        #endif
                lIPv6.sin6_scope_id = endPoint.Address.ScopeId;
                var lBytes = endPoint.Address.GetAddressBytes();
                for (int i = 0; i < 16; i++)
                                                #if toffee || darwin
                { lIPv6.sin6_addr.__u6_addr.__u6_addr8[i] = lBytes[i]; }
                                                #elif posix && !android
                { lIPv6.sin6_addr.__in6_u.__u6_addr8[i] = lBytes[i]; }
                                                #elif android
                { lIPv6.sin6_addr.in6_u.u6_addr8[i] = lBytes[i]; }
                                                #endif
                ipPointer = &lIPv6;
                ipSize    = sizeof(rtl.__struct_sockaddr_in6);
                break;

            default:
                lIPv4.sin_family = AddressFamily.InterNetwork;
                                        #if toffee || darwin
                lIPv4.sin_port = htons(endPoint.Port);
                                        #else
                lIPv4.sin_port = rtl.htons(endPoint.Port);
                                        #endif

                lIPv4.sin_addr.s_addr = endPoint.Address.Address;
                ipSize    = sizeof(rtl.__struct_sockaddr_in);
                ipPointer = &lIPv4;
                break;
            }
        }
Exemple #2
0
 private void IPEndPointToNative(IPEndPoint endPoint, out rtl.__struct_sockaddr_in lIPv4, out rtl.__struct_sockaddr_in6 lIPv6, out void *ipPointer, out int ipSize)