SocketFlags Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje chování odesílání a přijímání soketů.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
public enum class SocketFlags
[System.Flags]
public enum SocketFlags
[<System.Flags>]
type SocketFlags =
Public Enum SocketFlags
- Dědičnost
- Atributy
Pole
Broadcast | 1024 | Označuje paket všesměrového vysílání. |
ControlDataTruncated | 512 | Označuje, že data ovládacího prvku se nevešla do interní vyrovnávací paměti o velikosti 64 kB a byla zkrácena. |
DontRoute | 4 | Odesílání bez použití směrovacích tabulek |
MaxIOVectorLength | 16 | Poskytuje standardní hodnotu pro počet struktur WSABUF, které se používají k odesílání a přijímání dat. Tato hodnota se nepoužívá ani nepodporuje v rozhraní .NET Framework 4.5. |
Multicast | 2048 | Označuje paket vícesměrového vysílání. |
None | 0 | Pro toto volání nepoužívejte žádné příznaky. |
OutOfBand | 1 | Zpracování out-of-band dat |
Partial | 32768 | Částečné odeslání nebo přijetí zprávy. |
Peek | 2 | Náhled na příchozí zprávu. |
Truncated | 256 | Zpráva byla příliš velká, aby se nevešla do zadané vyrovnávací paměti, a byla zkrácena. |
Příklady
Následující příklad odesílá data a určuje 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