Поделиться через


UdpClient Конструкторы

Определение

Инициализирует новый экземпляр класса UdpClient.

Перегрузки

UdpClient()

Инициализирует новый экземпляр класса UdpClient.

UdpClient(Int32)

Инициализирует новый экземпляр класса UdpClient и связывает его с заданным номером локального порта.

UdpClient(IPEndPoint)

Инициализирует новый экземпляр класса UdpClient и связывает его с заданной локальной конечной точкой.

UdpClient(AddressFamily)

Инициализирует новый экземпляр класса UdpClient.

UdpClient(Int32, AddressFamily)

Инициализирует новый экземпляр класса UdpClient и связывает его с заданным номером локального порта.

UdpClient(String, Int32)

Инициализирует новый экземпляр класса UdpClient и устанавливает удаленный узел, используемый по умолчанию.

UdpClient()

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient.

public:
 UdpClient();
public UdpClient ();
Public Sub New ()

Исключения

Произошла ошибка при обращении к сокету.

Примеры

В следующем примере показано, как использовать конструктор без параметров для создания экземпляра UdpClient класса .

//Creates an instance of the UdpClient class using the default constructor.
UdpClient^ udpClient = gcnew UdpClient;
//Creates an instance of the UdpClient class using the default constructor.
UdpClient udpClient = new UdpClient();
'Creates an instance of the UdpClient class using the default constructor.
Dim udpClient As New UdpClient()

Комментарии

Этот конструктор создает новый UdpClient и позволяет базовому поставщику услуг назначить наиболее подходящий локальный IPv4-адрес и номер порта. Если используется этот конструктор, UdpClient экземпляру присваивается семейство адресов IPv4, которое не может быть изменено или перезаписано вызовом метода connect с целевым объектом IPv6.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Этот конструктор не подходит для присоединения к группе многоадресной рассылки, так как он не выполняет привязку сокета. Кроме того, он работает только с типами адресов IPv4.

Применяется к

UdpClient(Int32)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient и связывает его с заданным номером локального порта.

public:
 UdpClient(int port);
public UdpClient (int port);
new System.Net.Sockets.UdpClient : int -> System.Net.Sockets.UdpClient
Public Sub New (port As Integer)

Параметры

port
Int32

Номер локального порта, который планируется использовать для связи.

Исключения

Параметр port больше значения MaxPort или меньше значения MinPort.

Произошла ошибка при обращении к сокету.

Примеры

В следующем примере показано использование номера локального порта для создания экземпляра UdpClient класса .

//Creates an instance of the UdpClient class to listen on
// the default interface using a particular port.
try
{
   UdpClient^ udpClient = gcnew UdpClient( 11000 );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
//Creates an instance of the UdpClient class to listen on
// the default interface using a particular port.
try{
         UdpClient udpClient = new UdpClient(11000);
}
catch (Exception e ) {
          Console.WriteLine(e.ToString());
  }
'Creates an instance of the UdpClient class to listen on 
'the default interface using a particular port.
Try
   Dim udpClient As New UdpClient(11000)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

Этот конструктор создает базовый Socket объект и привязывает его к номеру порта, с которого вы планируете обмениваться данными. Используйте этот конструктор, если вы хотите задать только номер локального порта. Базовый поставщик услуг назначит локальный IP-адрес. Если передать 0 конструктору, базовый поставщик услуг назначит номер порта. Если используется этот конструктор, UdpClient экземпляру присваивается семейство адресов IPv4, которое не может быть изменено или перезаписано вызовом метода connect с целевым объектом IPv6.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Этот конструктор работает только с типами IPv4-адресов.

Применяется к

UdpClient(IPEndPoint)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient и связывает его с заданной локальной конечной точкой.

public:
 UdpClient(System::Net::IPEndPoint ^ localEP);
public UdpClient (System.Net.IPEndPoint localEP);
new System.Net.Sockets.UdpClient : System.Net.IPEndPoint -> System.Net.Sockets.UdpClient
Public Sub New (localEP As IPEndPoint)

Параметры

localEP
IPEndPoint

Объект IPEndPoint, предоставляющий локальную конечную точку, к которой выполняется привязка UDP-подключения.

Исключения

localEP имеет значение null.

Произошла ошибка при обращении к сокету.

Примеры

В следующем примере показано, как создать экземпляр UdpClient класса с помощью локальной конечной точки.

//Creates an instance of the UdpClient class using a local endpoint.
IPAddress^ ipAddress = Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ];
IPEndPoint^ ipLocalEndPoint = gcnew IPEndPoint( ipAddress,11000 );

try
{
   UdpClient^ udpClient = gcnew UdpClient( ipLocalEndPoint );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}

//Creates an instance of the UdpClient class using a local endpoint.
 IPAddress ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0];
 IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 11000);

try{
     UdpClient udpClient = new UdpClient(ipLocalEndPoint);
}
catch (Exception e ) {
           Console.WriteLine(e.ToString());
}
'Creates an instance of the UdpClient class using a local endpoint.
Dim ipAddress As IPAddress = Dns.Resolve(Dns.GetHostName()).AddressList(0)
Dim ipLocalEndPoint As New IPEndPoint(ipAddress, 11000)

Try
   Dim udpClient As New UdpClient(ipLocalEndPoint)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

Этот конструктор создает новый UdpClient объект и привязывает его к объекту , IPEndPoint указанному параметром localEP . Перед вызовом этого конструктора необходимо создать IPEndPoint , используя IP-адрес и номер порта, с которых планируется отправлять и получать данные. Вам не нужно указывать локальный IP-адрес и номер порта для отправки и получения данных. В противном случае базовый поставщик услуг назначит наиболее подходящий локальный IP-адрес и номер порта.

Если используется этот конструктор, экземпляр задается с семейством адресов, UdpClient указанным параметром localEP , которое не может быть изменено или перезаписано вызовом метода connect с другим семейством адресов.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

См. также раздел

Применяется к

UdpClient(AddressFamily)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient.

public:
 UdpClient(System::Net::Sockets::AddressFamily family);
public UdpClient (System.Net.Sockets.AddressFamily family);
new System.Net.Sockets.UdpClient : System.Net.Sockets.AddressFamily -> System.Net.Sockets.UdpClient
Public Sub New (family As AddressFamily)

Параметры

family
AddressFamily

Одно из значений AddressFamily, которое задает схему адресации для сокета.

Исключения

Свойству family задано значение, отличное от InterNetwork или InterNetworkV6.

Произошла ошибка при обращении к сокету.

Комментарии

Параметр family определяет, использует ли прослушиватель IP-адрес версии 4 (IPv4) или IP-адрес версии 6 (IPv6). Чтобы использовать IPv4-адрес, передайте InterNetwork значение . Чтобы использовать IPv6-адрес, передайте InterNetworkV6 значение . Передача любого другого значения вызывает метод для вызова ArgumentException.

Если используется этот конструктор, экземпляр задается с семейством адресов, UdpClient указанным параметром family , которое не может быть изменено или перезаписано вызовом метода connect с другим семейством адресов.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

не UdpClient.UdpClient(AddressFamily) подходит для присоединения к группе многоадресной рассылки, так как он не выполняет привязку сокета.

Применяется к

UdpClient(Int32, AddressFamily)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient и связывает его с заданным номером локального порта.

public:
 UdpClient(int port, System::Net::Sockets::AddressFamily family);
public UdpClient (int port, System.Net.Sockets.AddressFamily family);
new System.Net.Sockets.UdpClient : int * System.Net.Sockets.AddressFamily -> System.Net.Sockets.UdpClient
Public Sub New (port As Integer, family As AddressFamily)

Параметры

port
Int32

Порт, на котором производится ожидание входящих попыток подключений.

family
AddressFamily

Одно из значений AddressFamily, которое задает схему адресации для сокета.

Исключения

Свойству family задано значение, отличное от InterNetwork или InterNetworkV6.

port больше MaxPort или меньше MinPort.

Произошла ошибка при обращении к сокету.

Примеры

В следующем примере кода показано, как создать клиент UDP для использования в группе многоадресной рассылки.

// Bind and listen on port 2000. This constructor creates a socket
// and binds it to the port on which to receive data. The family
// parameter specifies that this connection uses an IPv6 address.
clientOriginator = gcnew UdpClient( 2000,AddressFamily::InterNetworkV6 );

// Join or create a multicast group. The multicast address ranges
// to use are specified in RFC#2375. You are free to use
// different addresses.
// Transform the String* address into the internal format.
m_GrpAddr = IPAddress::Parse( "FF01::1" );

// Display the multicast address used.
Console::WriteLine( "Multicast Address: [ {0}]", m_GrpAddr );

// Exercise the use of the IPv6MulticastOption.
Console::WriteLine( "Instantiate IPv6MulticastOption(IPAddress)" );

// Instantiate IPv6MulticastOption using one of the
// overloaded constructors.
IPv6MulticastOption^ ipv6MulticastOption = gcnew IPv6MulticastOption( m_GrpAddr );

// Store the IPAdress multicast options.
IPAddress^ group = ipv6MulticastOption->Group;
__int64 interfaceIndex = ipv6MulticastOption->InterfaceIndex;

// Display IPv6MulticastOption properties.
Console::WriteLine( "IPv6MulticastOption::Group: [ {0}]", group );
Console::WriteLine( "IPv6MulticastOption::InterfaceIndex: [ {0}]", interfaceIndex );

// Instantiate IPv6MulticastOption using another
// overloaded constructor.
IPv6MulticastOption^ ipv6MulticastOption2 = gcnew IPv6MulticastOption( group,interfaceIndex );

// Store the IPAdress multicast options.
group = ipv6MulticastOption2->Group;
interfaceIndex = ipv6MulticastOption2->InterfaceIndex;

// Display the IPv6MulticastOption2 properties.
Console::WriteLine( "IPv6MulticastOption::Group: [ {0} ]", group );
Console::WriteLine( "IPv6MulticastOption::InterfaceIndex: [ {0} ]", interfaceIndex );

// Join the specified multicast group using one of the
// JoinMulticastGroup overloaded methods.
clientOriginator->JoinMulticastGroup( (int)interfaceIndex, group );

// Define the endpoint data port. Note that this port number
// must match the ClientTarget UDP port number which is the
// port on which the ClientTarget is receiving data.
m_ClientTargetdest = gcnew IPEndPoint( m_GrpAddr,1000 );

// Bind and listen on port 2000. This constructor creates a socket
// and binds it to the port on which to receive data. The family
// parameter specifies that this connection uses an IPv6 address.
clientOriginator = new UdpClient(2000, AddressFamily.InterNetworkV6);

// Join or create a multicast group. The multicast address ranges
// to use are specified in RFC#2375. You are free to use
// different addresses.

// Transform the string address into the internal format.
m_GrpAddr = IPAddress.Parse("FF01::1");

// Display the multicast address used.
Console.WriteLine("Multicast Address: [" + m_GrpAddr.ToString() + "]");

// Exercise the use of the IPv6MulticastOption.
Console.WriteLine("Instantiate IPv6MulticastOption(IPAddress)");

// Instantiate IPv6MulticastOption using one of the
// overloaded constructors.
IPv6MulticastOption ipv6MulticastOption = new IPv6MulticastOption(m_GrpAddr);

// Store the IPAdress multicast options.
IPAddress group =  ipv6MulticastOption.Group;
long interfaceIndex = ipv6MulticastOption.InterfaceIndex;

// Display IPv6MulticastOption properties.
Console.WriteLine("IPv6MulticastOption.Group: [" + group  + "]");
Console.WriteLine("IPv6MulticastOption.InterfaceIndex: [" + interfaceIndex + "]");



// Instantiate IPv6MulticastOption using another
// overloaded constructor.
IPv6MulticastOption ipv6MulticastOption2 = new IPv6MulticastOption(group, interfaceIndex);

// Store the IPAdress multicast options.
group =  ipv6MulticastOption2.Group;
interfaceIndex = ipv6MulticastOption2.InterfaceIndex;

// Display the IPv6MulticastOption2 properties.
Console.WriteLine("IPv6MulticastOption.Group: [" + group  + "]");
Console.WriteLine("IPv6MulticastOption.InterfaceIndex: [" + interfaceIndex + "]");

// Join the specified multicast group using one of the
// JoinMulticastGroup overloaded methods.
clientOriginator.JoinMulticastGroup((int)interfaceIndex, group);


// Define the endpoint data port. Note that this port number
// must match the ClientTarget UDP port number which is the
// port on which the ClientTarget is receiving data.
m_ClientTargetdest = new IPEndPoint(m_GrpAddr, 1000);
' Bind and listen on port 2000. This constructor creates a socket 
' and binds it to the port on which to receive data. The family 
' parameter specifies that this connection uses an IPv6 address.
clientOriginator = New UdpClient(2000, AddressFamily.InterNetworkV6)

' Join or create a multicast group. The multicast address ranges 
' to use are specified in RFC#2375. You are free to use 
' different addresses.
' Transform the string address into the internal format.
m_GrpAddr = IPAddress.Parse("FF01::1")

' Display the multicast address used.
Console.WriteLine(("Multicast Address: [" + m_GrpAddr.ToString() + "]"))

' Exercise the use of the IPv6MulticastOption.
Console.WriteLine("Instantiate IPv6MulticastOption(IPAddress)")

' Instantiate IPv6MulticastOption using one of the 
' overloaded constructors.
Dim ipv6MulticastOption As New IPv6MulticastOption(m_GrpAddr)

' Store the IPAdress multicast options.
Dim group As IPAddress = ipv6MulticastOption.Group
Dim interfaceIndex As Long = ipv6MulticastOption.InterfaceIndex

' Display IPv6MulticastOption properties.
Console.WriteLine(("IPv6MulticastOption.Group: [" + group.ToString() + "]"))
Console.WriteLine(("IPv6MulticastOption.InterfaceIndex: [" + interfaceIndex.ToString() + "]"))

' Instantiate IPv6MulticastOption using another 
' overloaded constructor.
Dim ipv6MulticastOption2 As New IPv6MulticastOption(group, interfaceIndex)

' Store the IPAdress multicast options.
group = ipv6MulticastOption2.Group
interfaceIndex = ipv6MulticastOption2.InterfaceIndex

' Display the IPv6MulticastOption2 properties.
Console.WriteLine(("IPv6MulticastOption.Group: [" + group.ToString() + "]"))
Console.WriteLine(("IPv6MulticastOption.InterfaceIndex: [" + interfaceIndex.ToString() + "]"))

' Join the specified multicast group using one of the 
' JoinMulticastGroup overloaded methods.
clientOriginator.JoinMulticastGroup(Fix(interfaceIndex), group)

' Define the endpoint data port. Note that this port number
' must match the ClientTarget UDP port number which is the
' port on which the ClientTarget is receiving data.
m_ClientTargetdest = New IPEndPoint(m_GrpAddr, 1000)

Комментарии

Этот конструктор создает базовый Socket объект и привязывает его к номеру порта, с которого вы планируете обмениваться данными.

Параметр family определяет, использует ли прослушиватель IP-адрес версии 4 (IPv4) или IP-адрес версии 6 (IPv6). Чтобы использовать IPv4-адрес, передайте InterNetwork значение . Чтобы использовать IPv6-адрес, передайте InterNetworkV6 значение . Передача любого другого значения вызывает метод для вызова ArgumentException.

Если используется этот конструктор, экземпляр задается с семейством адресов, UdpClient указанным параметром family , которое не может быть изменено или перезаписано вызовом метода connect с другим семейством адресов.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, обратитесь к документации по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Применяется к

UdpClient(String, Int32)

Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs
Исходный код:
UDPClient.cs

Инициализирует новый экземпляр класса UdpClient и устанавливает удаленный узел, используемый по умолчанию.

public:
 UdpClient(System::String ^ hostname, int port);
public UdpClient (string hostname, int port);
new System.Net.Sockets.UdpClient : string * int -> System.Net.Sockets.UdpClient
Public Sub New (hostname As String, port As Integer)

Параметры

hostname
String

Имя удаленного DNS-узла, к которому планируется подключение.

port
Int32

Номер удаленного порта, к которому планируется выполнить подключение.

Исключения

hostname имеет значение null.

Значение параметра port не находится в диапазоне между значениями MinPort и MaxPort.

Произошла ошибка при обращении к сокету.

Примеры

В следующем примере показано, как создать экземпляр UdpClient класса , используя имя узла и номер порта.

//Creates an instance of the UdpClient class with a remote host name and a port number.
try
{
   UdpClient^ udpClient = gcnew UdpClient( "www.contoso.com",11000 );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}

//Creates an instance of the UdpClient class with a remote host name and a port number.
try{
     UdpClient udpClient = new UdpClient("www.contoso.com",11000);
}
catch (Exception e ) {
           Console.WriteLine(e.ToString());
}
'Creates an instance of the UdpClient class with a remote host name and a port number.
Try
   Dim udpClient As New UdpClient("www.contoso.com", 11000)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

Этот конструктор инициализирует новый UdpClient и устанавливает удаленный узел с помощью hostname параметров и port . Установка удаленного узла по умолчанию является необязательным. При использовании этого конструктора не нужно указывать удаленный узел в каждом вызове Send метода . Указание удаленного узла по умолчанию ограничивает вас только этим узлом. Удаленный узел по умолчанию можно изменить в любое время, вызвав Connect метод . Если вы хотите указать удаленный узел в вызове Send метода , не используйте этот конструктор.

Примечание

Если вы получаете SocketException, используйте SocketException.ErrorCode для получения определенного кода ошибки. Получив этот код, вы можете ознакомиться с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

См. также раздел

Применяется к