Socket.ReceiveMessageFrom メソッド

定義

オーバーロード

名前 説明
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

指定した SocketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

指定した socketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

指定した SocketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

public:
 int ReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : byte[] * int * int * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

パラメーター

buffer
Byte[]

受信したデータの格納場所である Byte 型の配列。

offset
Int32

受信したデータを格納する buffer パラメーター内の位置。

size
Int32

受信するバイト数。

socketFlags
SocketFlags

SocketFlags値のビットごとの組み合わせ。

remoteEP
EndPoint

正常な受信時に更新されるリモート ホストのエンドポイントと同じ種類の EndPoint への参照。

ipPacketInformation
IPPacketInformation

アドレスとインターフェイス情報を保持する IPPacketInformation

返品

受信されたバイト数。

例外

buffernullです。

-又は-

remoteEPnullです。

offset が 0 未満です。

-又は-

offsetbufferの長さを超えています。

-又は-

size が 0 未満です。

-又は-

size は、 buffer の長さからオフセット パラメーターの値を引いた値より大きい値です。

socketFlags が有効な値の組み合わせではありません。

-又は-

LocalEndPoint プロパティが設定されていません。

-又は-

.NET Framework は AMD 64 ビット プロセッサで実行されています。

-又は-

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

注釈

ReceiveMessageFrom メソッドは、buffer パラメーターにデータを読み取り、正常に読み取られたバイト数を返し、データの送信元のリモート ホスト エンドポイントと受信パケットに関する情報をキャプチャします。

ReceiveMessageFrom メソッドは、主にコネクションレス ソケットでメッセージ データを受信するために使用されます。 ソケットのローカル アドレスは既知である必要があります。 このメソッドは、データグラムと生のソケットでのみ使用できます。 このメソッドを呼び出す前に、ソケットの種類を Dgram または Raw に設定してソケットを初期化する必要があります。 これは、ソケットが Socketを使用して構築されるときに行うことができます。

メッセージ指向ソケットの場合、受信メッセージは、buffer パラメーターで指定された合計サイズまで、size パラメーターに配置されます。 offset パラメーターは、データが配置されるbuffer内の場所を決定します。 bufferに配置された実際のデータ量は、ReceiveMessageFrom メソッドによって返されます。

ReceiveMessageFrom メソッドは、特定のPacketInformationに対して初めて呼び出されるときにtrueするSocket ソケット オプションを自動的に設定します。 ただし、返された IPPacketInformation オブジェクトは、ソケット オプションが設定された後にローカル コンピューターに到着するパケットに対してのみ有効です。 ソケットがローカル エンドポイントにバインドされたとき ( Bind メソッドによって明示的に、または ConnectConnectAsyncSendTo、または SendToAsync メソッドのいずれかによって暗黙的に) と、 ReceiveMessageFrom メソッドの最初の呼び出しの間にパケットが送信された場合、 ReceiveMessageFrom メソッドの呼び出しはこれらのパケットに対して無効な IPPacketInformation オブジェクトを返します。

すべてのIPPacketInformation オブジェクトが有効であることを確認するには、PacketInformation メソッドを使用してローカル エンドポイントにバインドする前に、アプリケーションで true ソケット オプションを SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) に設定する必要があります。

アプリケーションは、データグラムがユニキャスト、マルチキャスト、またはブロードキャスト アドレスを使用して送信されたかどうかを知る必要がある場合に、 ipPacketInformation パラメーターを調べることができます。

Note

AddressFamilyで使用されるEndPointReceiveFromは、AddressFamilyで使用されるEndPointSendToと一致する必要があります。

Note

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「Network Tracing in .NET Framework」を参照してください。

こちらもご覧ください

適用対象

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

指定した socketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

public:
 int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom(Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

パラメーター

buffer
Span<Byte>

受信したデータの格納場所であるByte型のSpan<T>

socketFlags
SocketFlags

SocketFlags値のビットごとの組み合わせ。

remoteEP
EndPoint

正常な受信時に更新されるリモート ホストのエンドポイントと同じ種類の EndPoint への参照。

ipPacketInformation
IPPacketInformation

アドレスとインターフェイス情報を保持する IPPacketInformation

返品

受信されたバイト数。

例外

Socket オブジェクトが閉じられました。

EndPoint remoteEP がnull

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)で使用されるEndPointAddressFamilyは、SendTo で使用されるEndPointAddressFamilyと一致する必要があります。

Socket オブジェクトはブロック モードではなく、この同期呼び出しを受け入れることができません。 この操作を実行する前に、Bind メソッドを呼び出す必要があります。

適用対象