System.Net.IPEndPoint.Create C# (CSharp) Метод

Create() публичный Метод

public Create ( SocketAddress socketAddress ) : EndPoint
socketAddress SocketAddress
Результат EndPoint
        public override EndPoint Create(SocketAddress socketAddress)
        {
            // Validate SocketAddress
            if (socketAddress.Family != this.AddressFamily)
            {
                throw new ArgumentException(SR.Format(SR.net_InvalidAddressFamily, socketAddress.Family.ToString(), this.GetType().FullName, this.AddressFamily.ToString()), nameof(socketAddress));
            }
            if (socketAddress.Size < 8)
            {
                throw new ArgumentException(SR.Format(SR.net_InvalidSocketAddressSize, socketAddress.GetType().FullName, this.GetType().FullName), nameof(socketAddress));
            }

            return socketAddress.GetIPEndPoint();
        }

Usage Example

Пример #1
0
		/// <summary>
		/// Reads the unmanaged sockaddr structure returned by a WinAPI function
		/// </summary>
		/// <param name="pSockaddrStructure">pointer to the unmanaged sockaddr structure</param>
		/// <returns>IP address and port number</returns>
		public static IPEndPoint ReadSockaddrStructure(IntPtr pSockaddrStructure) {
			short sAddressFamily = Marshal.ReadInt16(pSockaddrStructure);
			AddressFamily addressFamily = (AddressFamily)sAddressFamily;

			int sockAddrSructureSize;
			IPEndPoint ipEndPointAny;
			switch (addressFamily) {
				case AddressFamily.InterNetwork:
					// IP v4 address
					sockAddrSructureSize = 16;
					ipEndPointAny = new IPEndPoint(IPAddress.Any, 0);
					break;
				case AddressFamily.InterNetworkV6:
					// IP v6 address
					sockAddrSructureSize = 28;
					ipEndPointAny = new IPEndPoint(IPAddress.IPv6Any, 0);
					break;
				default:
					throw new ArgumentOutOfRangeException("pSockaddrStructure", "Unknown address family");
			}


			// get bytes of the sockadrr structure
			byte[] sockAddrSructureBytes = new byte[sockAddrSructureSize];
			Marshal.Copy(pSockaddrStructure, sockAddrSructureBytes, 0, sockAddrSructureSize);

			// create SocketAddress from bytes
			var socketAddress = new SocketAddress(AddressFamily.Unspecified, sockAddrSructureSize);
			for (int i = 0; i < sockAddrSructureSize; i++) {
				socketAddress[i] = sockAddrSructureBytes[i];
			}

			// create IPEndPoint from SocketAddress
			IPEndPoint result = (IPEndPoint)ipEndPointAny.Create(socketAddress);

			return result;
		}
All Usage Examples Of System.Net.IPEndPoint::Create