Socket.ReceiveMessageFrom メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
指定した SocketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。 |
| ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
指定した |
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
パラメーター
- offset
- Int32
受信したデータを格納する buffer パラメーター内の位置。
- size
- Int32
受信するバイト数。
- socketFlags
- SocketFlags
SocketFlags値のビットごとの組み合わせ。
- ipPacketInformation
- IPPacketInformation
アドレスとインターフェイス情報を保持する IPPacketInformation 。
返品
受信されたバイト数。
例外
offset が 0 未満です。
-又は-
offset が bufferの長さを超えています。
-又は-
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 メソッドによって明示的に、または Connect、 ConnectAsync、 SendTo、または SendToAsync メソッドのいずれかによって暗黙的に) と、 ReceiveMessageFrom メソッドの最初の呼び出しの間にパケットが送信された場合、 ReceiveMessageFrom メソッドの呼び出しはこれらのパケットに対して無効な IPPacketInformation オブジェクトを返します。
すべてのIPPacketInformation オブジェクトが有効であることを確認するには、PacketInformation メソッドを使用してローカル エンドポイントにバインドする前に、アプリケーションで true ソケット オプションを SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) に設定する必要があります。
アプリケーションは、データグラムがユニキャスト、マルチキャスト、またはブロードキャスト アドレスを使用して送信されたかどうかを知る必要がある場合に、 ipPacketInformation パラメーターを調べることができます。
Note
AddressFamilyで使用されるEndPointのReceiveFromは、AddressFamilyで使用されるEndPointのSendToと一致する必要があります。
Note
このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「Network Tracing in .NET Framework」を参照してください。
こちらもご覧ください
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
適用対象
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
パラメーター
- socketFlags
- SocketFlags
SocketFlags値のビットごとの組み合わせ。
- ipPacketInformation
- IPPacketInformation
アドレスとインターフェイス情報を保持する IPPacketInformation 。
返品
受信されたバイト数。
例外
Socket オブジェクトが閉じられました。
EndPoint remoteEP がnull。
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)で使用されるEndPointのAddressFamilyは、SendTo で使用されるEndPointのAddressFamilyと一致する必要があります。
Socket オブジェクトはブロック モードではなく、この同期呼び出しを受け入れることができません。 この操作を実行する前に、Bind メソッドを呼び出す必要があります。