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


UdpClient.Send Метод

Определение

Отправляет датаграмму UDP в удаленный узел.

Перегрузки

Send(Byte[], Int32, String, Int32)

Отправляет UDP-датаграмму на заданный порт указанного удаленного узла.

Send(ReadOnlySpan<Byte>, String, Int32)

Отправляет UDP-датаграмму на заданный порт указанного удаленного узла.

Send(Byte[], Int32, IPEndPoint)

Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке.

Send(Byte[], Int32)

Отправляет датаграмму UDP в удаленный узел.

Send(ReadOnlySpan<Byte>)

Отправляет датаграмму UDP в удаленный узел.

Send(ReadOnlySpan<Byte>, IPEndPoint)

Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке.

Send(Byte[], Int32, String, Int32)

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

Отправляет UDP-датаграмму на заданный порт указанного удаленного узла.

public:
 int Send(cli::array <System::Byte> ^ dgram, int bytes, System::String ^ hostname, int port);
public int Send (byte[] dgram, int bytes, string? hostname, int port);
public int Send (byte[] dgram, int bytes, string hostname, int port);
member this.Send : byte[] * int * string * int -> int
Public Function Send (dgram As Byte(), bytes As Integer, hostname As String, port As Integer) As Integer

Параметры

dgram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

hostname
String

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

port
Int32

Номер удаленного порта, с которым планируется обмен данных.

Возвращаемое значение

Число отправленных байтов.

Исключения

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

Для объекта UdpClient уже установлен удаленный узел, используемый по умолчанию.

Объект UdpClient закрыт.

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

Примеры

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

UdpClient^ udpClient = gcnew UdpClient;

array<Byte>^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there" );
try
{
   udpClient->Send( sendBytes, sendBytes->Length, "www.contoso.com", 11000 );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
UdpClient udpClient = new UdpClient();

Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there");
try{
    udpClient.Send(sendBytes, sendBytes.Length, "www.contoso.com", 11000);
}
catch ( Exception e ){
    Console.WriteLine(e.ToString());	
}
Dim udpClient As New UdpClient()

Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there")
Try
   udpClient.Send(sendBytes, sendBytes.Length, "www.contoso.com", 11000)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

Метод Send отправляет датаграммы значениям, заданным параметрами hostname и , port и возвращает количество успешно отправленных байтов. Вы можете отправить датаграммы на широковещательный адрес по умолчанию, указав "255.255.255.255" в параметре hostname .

Если вы хотите отправить датаграммы на любой другой широковещательный адрес, используйте Client метод для получения базового Socketи задайте для параметра сокета значение SocketOptionName.Broadcast. Вы также можете отменить изменения к использованию Socket класса .

Примечание

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

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

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

Send(ReadOnlySpan<Byte>, String, Int32)

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

Отправляет UDP-датаграмму на заданный порт указанного удаленного узла.

public:
 int Send(ReadOnlySpan<System::Byte> datagram, System::String ^ hostname, int port);
public int Send (ReadOnlySpan<byte> datagram, string? hostname, int port);
member this.Send : ReadOnlySpan<byte> * string * int -> int
Public Function Send (datagram As ReadOnlySpan(Of Byte), hostname As String, port As Integer) As Integer

Параметры

datagram
ReadOnlySpan<Byte>

Byte Тип ReadOnlySpan<T> , указывающий датаграмму UDP, которую вы планируете отправить.

hostname
String

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

port
Int32

Номер удаленного порта, с которым планируется обмен данных.

Возвращаемое значение

Число отправленных байтов.

Исключения

Для объекта UdpClient уже установлен удаленный узел, используемый по умолчанию.

Объект UdpClient закрыт.

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

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

Send(Byte[], Int32, IPEndPoint)

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

Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке.

public:
 int Send(cli::array <System::Byte> ^ dgram, int bytes, System::Net::IPEndPoint ^ endPoint);
public int Send (byte[] dgram, int bytes, System.Net.IPEndPoint? endPoint);
public int Send (byte[] dgram, int bytes, System.Net.IPEndPoint endPoint);
member this.Send : byte[] * int * System.Net.IPEndPoint -> int
Public Function Send (dgram As Byte(), bytes As Integer, endPoint As IPEndPoint) As Integer

Параметры

dgram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

endPoint
IPEndPoint

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

Возвращаемое значение

Число отправленных байтов.

Исключения

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

Для объекта UdpClient уже установлен удаленный узел, используемый по умолчанию.

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

Примеры

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

UdpClient^ udpClient = gcnew UdpClient;
IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ];
IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddress,11004 );

array<Byte>^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there?" );
try
{
   udpClient->Send( sendBytes, sendBytes->Length, ipEndPoint );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
UdpClient udpClient = new UdpClient();
IPAddress ipAddress = Dns.Resolve("www.contoso.com").AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 11004);	

Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
try{
    udpClient.Send(sendBytes, sendBytes.Length, ipEndPoint);
}
catch ( Exception e ){
    Console.WriteLine(e.ToString());	
}
Dim udpClient As New UdpClient()
Dim ipAddress As IPAddress = Dns.Resolve("www.contoso.com").AddressList(0)
Dim ipEndPoint As New IPEndPoint(ipAddress, 11004)

Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there?")
Try
   udpClient.Send(sendBytes, sendBytes.Length, ipEndPoint)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

Метод Send отправляет датаграммы в указанную конечную точку и возвращает количество успешно отправленных байтов. Перед вызовом IPEndPoint этой перегрузки необходимо сначала создать , используя IP-адрес и номер порта удаленного узла, на который будут доставляться датаграммы. Вы можете отправлять датаграммы на адрес широковещательной трансляции по умолчанию 255.255.255.255, указав SocketOptionName.Broadcast для Address свойства IPEndPoint. После создания этого IPEndPointметода передайте его в метод в SendendPoint качестве параметра .

Если вы хотите отправить датаграммы на любой другой широковещательный адрес, используйте Client метод для получения базового Socketи задайте для параметра сокета значение SocketOptionName.Broadcast. Вы также можете отменить изменения к использованию Socket класса .

Примечание

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

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

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

Send(Byte[], Int32)

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

Отправляет датаграмму UDP в удаленный узел.

public:
 int Send(cli::array <System::Byte> ^ dgram, int bytes);
public int Send (byte[] dgram, int bytes);
member this.Send : byte[] * int -> int
Public Function Send (dgram As Byte(), bytes As Integer) As Integer

Параметры

dgram
Byte[]

Массив типа Byte, задающий UDP-датаграмму, которую предполагается послать в виде байтового массива.

bytes
Int32

Число байт в датаграмме.

Возвращаемое значение

Число отправленных байтов.

Исключения

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

Для объекта UdpClient уже установлен удаленный узел, используемый по умолчанию.

Объект UdpClient закрыт.

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

Примеры

В следующем примере демонстрируется Send метод. Перед использованием этой перегрузки необходимо установить удаленный узел по умолчанию.

UdpClient^ udpClient = gcnew UdpClient( "www.contoso.com",11000 );
array<Byte>^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there" );
try
{
   udpClient->Send( sendBytes, sendBytes->Length );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
UdpClient udpClient = new UdpClient("www.contoso.com", 11000);
Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there");
try{
    udpClient.Send(sendBytes, sendBytes.Length);
}
catch ( Exception e ){
    Console.WriteLine( e.ToString());
}
Dim udpClient As New UdpClient("www.contoso.com", 11000)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there")
Try
   udpClient.Send(sendBytes, sendBytes.Length)
Catch e As Exception
   Console.WriteLine(e.ToString())
End Try

Комментарии

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

Если вы хотите отправить датаграммы на другой удаленный узел, необходимо вызвать Connect метод и указать нужный удаленный узел. Используйте другую перегрузку Send метода для отправки датаграмм на широковещательный адрес.

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

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

Send(ReadOnlySpan<Byte>)

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

Отправляет датаграмму UDP в удаленный узел.

public:
 int Send(ReadOnlySpan<System::Byte> datagram);
public int Send (ReadOnlySpan<byte> datagram);
member this.Send : ReadOnlySpan<byte> -> int
Public Function Send (datagram As ReadOnlySpan(Of Byte)) As Integer

Параметры

datagram
ReadOnlySpan<Byte>

Byte Тип ReadOnlySpan<T> , указывающий датаграмму UDP, которую вы планируете отправить.

Возвращаемое значение

Число отправленных байтов.

Исключения

Не UdpClient установил удаленный узел по умолчанию.

Объект UdpClient закрыт.

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

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

Send(ReadOnlySpan<Byte>, IPEndPoint)

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

Отправляет UDP-датаграмму в узел в указанной удаленной конечной точке.

public:
 int Send(ReadOnlySpan<System::Byte> datagram, System::Net::IPEndPoint ^ endPoint);
public int Send (ReadOnlySpan<byte> datagram, System.Net.IPEndPoint? endPoint);
member this.Send : ReadOnlySpan<byte> * System.Net.IPEndPoint -> int
Public Function Send (datagram As ReadOnlySpan(Of Byte), endPoint As IPEndPoint) As Integer

Параметры

datagram
ReadOnlySpan<Byte>

Byte Тип ReadOnlySpan<T> , указывающий датаграмму UDP, которую вы планируете отправить.

endPoint
IPEndPoint

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

Возвращаемое значение

Число отправленных байтов.

Исключения

UdpClient уже установил удаленный узел по умолчанию и endPoint не nullимеет значения .

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

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