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


SocketFlags Перечисление

Определение

Указывает поведение сокета при отправке и получении.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class SocketFlags
[System.Flags]
public enum SocketFlags
[<System.Flags>]
type SocketFlags = 
Public Enum SocketFlags
Наследование
SocketFlags
Атрибуты

Поля

Broadcast 1024

Указывает на пакет широковещательной рассылки.

ControlDataTruncated 512

Указывает на то, что данные элемента управления не поместились во внутренний буфер объемом 64 КБ и были усечены.

DontRoute 4

Отправка без использования таблиц маршрутизации.

MaxIOVectorLength 16

Указывает стандартное значение для числа структур WSABUF, используемых для отправки и получения данных. Это значение не используется и не поддерживается в платформа .NET Framework 4.5.

Multicast 2048

Указывает на пакет многоадресной рассылки.

None 0

Не использовать флаги для этого вызова.

OutOfBand 1

Обработка внешних данных.

Partial 32768

Отправка или передача части сообщения.

Peek 2

Обзор входящего сообщения.

Truncated 256

Сообщение усечено, так как оно слишком велико для помещения в указанный буфер.

Примеры

В следующем примере отправляется данные и указывается SocketFlags.None.

// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
int SendReceiveTest3( Socket^ server )
{
   array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
   array<Byte>^ bytes = gcnew array<Byte>(256);
   try
   {
      // Blocks until send returns.
      int i = server->Send( msg, msg->Length, SocketFlags::None );
      Console::WriteLine( "Sent {0} bytes.", i.ToString() );
      
      // Get reply from the server.
      int byteCount = server->Receive( bytes, server->Available,
         SocketFlags::None );
      if ( byteCount > 0 )
      {
         Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
      }
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
      return (e->ErrorCode);
   }
   return 0;
}
// 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

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