Socket.Send Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Отправляет данные в подключенное Socket.
Перегрузки
| Имя | Описание |
|---|---|
| Send(ReadOnlySpan<Byte>, SocketFlags, SocketError) |
Отправляет данные в подключенное Socket с помощью указанного SocketFlags. |
| Send(ReadOnlySpan<Byte>) |
Отправляет данные в подключенное Socket. |
| Send(Byte[], Int32, Int32, SocketFlags, SocketError) |
Отправляет указанное число байтов данных в подключенное Socket, начиная с указанного смещения и используя указанный SocketFlags. |
| Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Отправляет набор буферов в списке подключенным Socketс помощью указанного SocketFlags. |
| Send(Byte[], Int32, Int32, SocketFlags) |
Отправляет указанное число байтов данных в подключенное Socket, начиная с указанного смещения и используя указанный SocketFlags. |
| Send(Byte[], Int32, SocketFlags) |
Отправляет указанное число байтов данных в подключенное Socket, используя указанный SocketFlagsпараметр. |
| Send(IList<ArraySegment<Byte>>) |
Отправляет набор буферов в списке подключенным Socket. |
| Send(IList<ArraySegment<Byte>>, SocketFlags) |
Отправляет набор буферов в списке подключенным Socketс помощью указанного SocketFlags. |
| Send(Byte[], SocketFlags) |
Отправляет данные в подключенное Socket с помощью указанного SocketFlags. |
| Send(ReadOnlySpan<Byte>, SocketFlags) |
Отправляет данные в подключенное Socket с помощью указанного SocketFlags. |
| Send(Byte[]) |
Отправляет данные в подключенное Socket. |
Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет данные в подключенное Socket с помощью указанного SocketFlags.
public:
int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Параметры
- buffer
- ReadOnlySpan<Byte>
Диапазон байтов, содержащих отправленные данные.
- socketFlags
- SocketFlags
Побитовое сочетание значений перечисления, указывающее поведение отправки и получения.
- errorCode
- SocketError
При возврате этого метода содержит одно из значений перечисления, определяющих коды ошибок для сокета.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Комментарии
Sendсинхронно отправляет данные на удаленный узел, указанный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
Для этой перегрузки требуется буфер, содержащий данные, которые нужно отправить. Значение SocketFlags по умолчанию равно 0, смещение буфера по умолчанию равно 0, а число байтов для отправки по умолчанию в размер буфера.
Если вы используете протокол без подключения, необходимо вызвать перед вызовом Connect этого метода или Send вызвать исключение SocketException. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API для сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Это важно
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(ReadOnlySpan<Byte>)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет данные в подключенное Socket.
public:
int Send(ReadOnlySpan<System::Byte> buffer);
public int Send(ReadOnlySpan<byte> buffer);
member this.Send : ReadOnlySpan<byte> -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte)) As Integer
Параметры
- buffer
- ReadOnlySpan<Byte>
Диапазон байтов, содержащих отправленные данные.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Комментарии
Sendсинхронно отправляет данные на удаленный узел, указанный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
Для этой перегрузки требуется буфер, содержащий данные, которые нужно отправить. Значение SocketFlags по умолчанию равно 0, смещение буфера по умолчанию равно 0, а число байтов для отправки по умолчанию в размер буфера.
Если вы используете протокол без подключения, необходимо вызвать перед вызовом Connect этого метода или Send вызвать исключение SocketException. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Это важно
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(Byte[], Int32, Int32, SocketFlags, SocketError)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет указанное число байтов данных в подключенное Socket, начиная с указанного смещения и используя указанный SocketFlags.
public:
int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Параметры
- offset
- Int32
Позиция в буфере данных, с которой начинается отправка данных.
- size
- Int32
Количество байтов для отправки.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- errorCode
- SocketError
SocketError Объект, который хранит ошибку сокета.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffer равно null.
offset меньше 0.
–или–
offset больше длины buffer.
–или–
size меньше 0.
–или–
size больше длины buffer минус значения offset параметра.
socketFlags не является допустимым сочетанием значений.
–или–
При доступе к операционной Socketсистеме возникает ошибка.
Он Socket был закрыт.
Примеры
В следующем примере кода указывается буфер данных, смещение, размер и SocketFlags отправка данных в подключенное Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest4
Комментарии
Sendсинхронно отправляет данные на удаленный узел, указанный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
В этой перегрузке, если указать DontRoute флаг в качестве socketflags параметра, данные, которые вы отправляете, не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать исключение SocketException. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo. Если вы не используете SendTo, необходимо будет вызвать Connect перед каждым вызовом Send. Это нормально использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Кроме того, необходимо убедиться, что размер не превышает максимальный размер пакета базового поставщика услуг. Если это так, то диаграмма данных не будет отправлена SocketExceptionи Send вызовет исключение.
Если вы используете протокол, ориентированный на подключение, блокируется до отправки запрошенного количества байтовSend, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если оно отправляет меньше количества запрашиваемых байтов. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит запрошенное число байтов. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет набор буферов в списке подключенным Socketс помощью указанного SocketFlags.
public:
int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Параметры
- buffers
- IList<ArraySegment<Byte>>
Список ArraySegment<T>типов Byte , содержащих отправленные данные.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- errorCode
- SocketError
SocketError Объект, который хранит ошибку сокета.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffers равно null.
buffers значение пусто.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Комментарии
Для этой перегрузки требуется по крайней мере один буфер, содержащий данные, которые нужно отправить. Значение SocketFlags по умолчанию равно 0. Если в качестве socketFlags параметра указать DontRoute флаг, то отправляемые данные не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать SocketExceptionисключение. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо будет вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме без блокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Применяется к
Send(Byte[], Int32, Int32, SocketFlags)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет указанное число байтов данных в подключенное Socket, начиная с указанного смещения и используя указанный SocketFlags.
public:
int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer
Параметры
- offset
- Int32
Позиция в буфере данных, с которой начинается отправка данных.
- size
- Int32
Количество байтов для отправки.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffer равно null.
offset меньше 0.
–или–
offset больше длины buffer.
–или–
size меньше 0.
–или–
size больше длины buffer минус значения offset параметра.
socketFlags не является допустимым сочетанием значений.
–или–
При доступе к операционной Socketсистеме возникает ошибка.
Он Socket был закрыт.
Примеры
В следующем примере кода указывается буфер данных, смещение, размер и SocketFlags отправка данных в подключенное Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest4
Комментарии
Sendсинхронно отправляет данные на удаленный узел, указанный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
В этой перегрузке, если указать DontRoute флаг в качестве socketflags параметра, данные, которые вы отправляете, не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать исключение SocketException. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo. Если вы не используете SendTo, необходимо будет вызвать Connect перед каждым вызовом Send. Это нормально использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Кроме того, необходимо убедиться, что размер не превышает максимальный размер пакета базового поставщика услуг. Если это так, то диаграмма данных не будет отправлена SocketExceptionи Send вызовет исключение.
Если вы используете протокол, ориентированный на подключение, блокируется до отправки запрошенного количества байтовSend, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если оно отправляет меньше количества запрашиваемых байтов. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит запрошенное число байтов. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(Byte[], Int32, SocketFlags)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет указанное число байтов данных в подключенное Socket, используя указанный SocketFlagsпараметр.
public:
int Send(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer
Параметры
- size
- Int32
Количество байтов для отправки.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffer равно null.
size меньше 0 или превышает размер буфера.
socketFlags не является допустимым сочетанием значений.
–или–
При доступе к сокету возникает ошибка операционной системы.
Он Socket был закрыт.
Примеры
В следующем примере кода данные, найденные в буфере, отправляются и указываются None для SocketFlags.
// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
public static int SendReceiveTest3(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int i = server.Send(msg, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", i);
// Get reply from the server.
int byteCount = server.Receive(bytes, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, message size, and socket flags.
Public Shared Function SendReceiveTest3(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim i As Integer = server.Send(msg, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", i)
' Get reply from the server.
Dim byteCount As Integer = server.Receive(bytes, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest3
Комментарии
Sendсинхронно отправляет данные на удаленный узел, установленный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
Для этой перегрузки требуется буфер, содержащий данные, которые нужно отправить, количество байтов, которые нужно отправить, и побитовое сочетание любого SocketFlags. Если в качестве socketflags параметра указать DontRoute флаг, данные, которые вы отправляете, не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать перед вызовом Connect этого метода или Send вызвать исключение SocketException. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется SendTo , необходимо вызвать Connect метод перед каждым вызовом Send метода. Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
При использовании протокола, ориентированного на подключение, Send блокируются до отправки запрошенного количества байтов, если не задано Socket.SendTimeoutвремя ожидания. Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если оно отправляет меньше количества запрашиваемых байтов. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит запрошенное число байтов. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
Необходимо убедиться, что размер не превышает максимальный размер пакета базового поставщика услуг. Если это так, то диаграмма данных не будет отправлена и Send вызовет SocketExceptionисключение. При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Это важно
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(IList<ArraySegment<Byte>>)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет набор буферов в списке подключенным Socket.
public:
int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte))) As Integer
Параметры
- buffers
- IList<ArraySegment<Byte>>
Список ArraySegment<T>типов Byte , содержащих отправленные данные.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffers равно null.
buffers значение пусто.
Произошла ошибка при попытке доступа к сокету. См. раздел примечаний ниже.
Он Socket был закрыт.
Комментарии
Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
Для этой перегрузки требуется по крайней мере один буфер, содержащий данные, которые нужно отправить.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать SocketExceptionисключение. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо будет вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Применяется к
Send(IList<ArraySegment<Byte>>, SocketFlags)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет набор буферов в списке подключенным Socketс помощью указанного SocketFlags.
public:
int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer
Параметры
- buffers
- IList<ArraySegment<Byte>>
Список ArraySegment<T>типов Byte , содержащих отправленные данные.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffers равно null.
buffers значение пусто.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Комментарии
Для этой перегрузки требуется по крайней мере один буфер, содержащий данные, которые нужно отправить. Значение SocketFlags по умолчанию равно 0. Если в качестве socketFlags параметра указать DontRoute флаг, то отправляемые данные не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать SocketExceptionисключение. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо будет вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме без блокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Применяется к
Send(Byte[], SocketFlags)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет данные в подключенное Socket с помощью указанного SocketFlags.
public:
int Send(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), socketFlags As SocketFlags) As Integer
Параметры
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffer равно null.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Примеры
В следующем примере кода демонстрируется отправка данных в подключенном Socketрежиме.
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest2
Комментарии
Sendсинхронно отправляет данные на удаленный узел, установленный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Этот Send метод можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных протоколов.
Для этой перегрузки требуется буфер, содержащий данные, которые нужно отправить, и побитовое сочетание SocketFlags. Смещение буфера по умолчанию — 0, а число байтов для отправки по умолчанию в размер буфера. При указании флага DontRoutesocketflags в качестве значения параметра данные, отправляемые данные не будут перенаправлены.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать SocketExceptionисключение. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, перед каждым вызовом SendToSendнеобходимо вызвать Connect метод. Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит запрошенное число байтов. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
Необходимо убедиться, что размер буфера не превышает максимальный размер пакета базового поставщика услуг. Если это так, то диаграмма данных не будет отправлена SocketExceptionи Send вызовет исключение. При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(ReadOnlySpan<Byte>, SocketFlags)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет данные в подключенное Socket с помощью указанного SocketFlags.
public:
int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags) As Integer
Параметры
- buffer
- ReadOnlySpan<Byte>
Диапазон байтов, содержащих отправленные данные.
- socketFlags
- SocketFlags
Побитовое сочетание значений перечисления, указывающее поведение отправки и получения.
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Применяется к
Send(Byte[])
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Отправляет данные в подключенное Socket.
public:
int Send(cli::array <System::Byte> ^ buffer);
public int Send(byte[] buffer);
member this.Send : byte[] -> int
Public Function Send (buffer As Byte()) As Integer
Параметры
Возвращаемое значение
Число байтов, отправляемых в Socket.
Исключения
buffer равно null.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Примеры
В следующем примере кода демонстрируется отправка данных в подключенном Socketрежиме.
// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int i = server.Send(msg);
Console.WriteLine("Sent {0} bytes.", i);
// Get reply from the server.
i = server.Receive(bytes);
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim i As Integer = server.Send(msg)
Console.WriteLine("Sent {0} bytes.", i)
' Get reply from the server.
i = server.Receive(bytes)
Console.WriteLine(Encoding.UTF8.GetString(bytes))
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest1
Комментарии
Sendсинхронно отправляет данные на удаленный узел, указанный в или Accept методеConnect, и возвращает количество байтов, успешно отправленных. Send можно использовать как для протоколов, ориентированных на подключение, так и для бессерверных подключений.
Для этой перегрузки требуется буфер, содержащий данные, которые нужно отправить. Значение SocketFlags по умолчанию равно 0, смещение буфера по умолчанию равно 0, а число байтов для отправки по умолчанию в размер буфера.
Если вы используете протокол без подключения, необходимо вызвать Connect перед вызовом этого метода или Send вызвать SocketExceptionисключение. Если вы используете протокол, ориентированный на подключение, необходимо либо установить Connect подключение удаленного узла, либо использовать Accept для принятия входящего подключения.
Если вы используете протокол без подключения и планируете отправлять данные на несколько разных узлов, следует использовать SendTo этот метод. Если метод не используется, необходимо будет вызвать Connect перед каждым вызовом.SendToSend Вы можете использовать SendTo даже после установки удаленного узла Connectпо умолчанию. Вы также можете изменить удаленный узел по умолчанию перед вызовом Send , выполнив другой вызов Connect.
Если вы используете протокол, ориентированный на подключение, Send будет блокироваться до отправки всех байтов в буфере, если не задано время ожидания.Socket.SendTimeout Если превышено время ожидания, Send вызов вызовет исключение SocketException. В режиме неблокировки может завершиться успешно, Send даже если он отправляет меньше количества байтов в буфере. Это ответственность вашего приложения за отслеживание количества отправленных байтов и повторения операции до тех пор, пока приложение не отправит байты в буфере. Кроме того, нет никаких гарантий, что отправляемые данные будут отображаться в сети немедленно. Чтобы повысить эффективность сети, базовая система может отложить передачу, пока не будет собран значительный объем исходящих данных. Успешное Send завершение метода означает, что базовая система имела место для буферизации данных для отправки сетей.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Успешное завершение отправки не указывает, что данные были успешно доставлены. Если буферное пространство не доступно в транспортной системе для хранения передаваемых данных, отправка будет блокироваться, если сокет не помещается в неблокировочный режим.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
См. также раздел
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)