SocketFlags SocketFlags SocketFlags SocketFlags Enum

Definition

Specifies socket send and receive behaviors.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

public enum class SocketFlags
[System.Flags]
public enum SocketFlags
type SocketFlags = 
Public Enum SocketFlags
Inheritance
Attributes

Fields

Broadcast Broadcast Broadcast Broadcast 1024

Indicates a broadcast packet.

ControlDataTruncated ControlDataTruncated ControlDataTruncated ControlDataTruncated 512

Indicates that the control data did not fit into an internal 64-KB buffer and was truncated.

DontRoute DontRoute DontRoute DontRoute 4

Send without using routing tables.

MaxIOVectorLength MaxIOVectorLength MaxIOVectorLength MaxIOVectorLength 16

Provides a standard value for the number of WSABUF structures that are used to send and receive data. This value is not used or supported on .NET Framework 4.5.

Multicast Multicast Multicast Multicast 2048

Indicates a multicast packet.

None None None None 0

Use no flags for this call.

OutOfBand OutOfBand OutOfBand OutOfBand 1

Process out-of-band data.

Partial Partial Partial Partial 32768

Partial send or receive for message.

Peek Peek Peek Peek 2

Peek at the incoming message.

Truncated Truncated Truncated Truncated 256

The message was too large to fit into the specified buffer and was truncated.

Examples

The following example sends data and specifies None for 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, 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);
        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

Applies to