示例#1
0
        public unsafe PosixResult TryGetPeerIPAddress(out IPEndPointStruct ep)
        {
            IPSocketAddress socketAddress;
            var             rv = SocketInterop.GetPeerName(this, (byte *)&socketAddress, sizeof(IPSocketAddress));

            if (rv.IsSuccess)
            {
                ep = socketAddress.ToIPEndPoint();
            }
            else
            {
                ep = default(IPEndPointStruct);
            }
            return(rv);
        }
        public static unsafe PosixResult TryGetPeerIPAddress(int socket, out IPEndPointStruct ep, IPAddress reuseAddress = null)
        {
            sockaddr_storage socketAddress;
            var rv = SocketInterop.GetPeerName(socket, &socketAddress);

            if (rv.IsSuccess)
            {
                if (!ToIPEndPointStruct(&socketAddress, out ep, reuseAddress))
                {
                    return(new PosixResult(PosixResult.EINVAL));
                }
            }
            else
            {
                ep = default(IPEndPointStruct);
            }
            return(rv);
        }