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
指定した 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 、主にコネクションレス ソケットでメッセージ データを受信するために使用されます。 ソケットのローカル アドレスは既知である必要があります。 このメソッドは、データグラムと生のソケットでのみ使用できます。 ソケットは、このメソッドを呼び出す前に、 または Raw に設定されたソケット型でDgram初期化する必要があります。 これは、 を使用して Socketソケットを構築するときに行うことができます。
メッセージ指向ソケットの場合、受信メッセージは、 パラメーターで buffer
指定された合計サイズまでパラメーターに size
配置されます。 パラメーターは offset
、データの buffer
どこに配置するかを決定します。 に buffer
配置された実際のデータ量は、 メソッドによって ReceiveMessageFrom 返されます。
メソッドはReceiveMessageFrom、指定Socketされた に対してPacketInformationtrue
初めて呼び出されるときにソケット オプションを自動的に設定します。 ただし、返される IPPacketInformation オブジェクトは、ソケット オプションが設定された後にローカル コンピューターに到着するパケットに対してのみ有効です。 ソケットがローカル エンドポイントにバインドされたとき (メソッドによって明示的に、または 、、または SendToAsync のいずれかのメソッドによってBind暗黙的に) とメソッドの最初のConnectSendToConnectAsync呼び出しの間にパケットが送信された場合、メソッドの呼ReceiveMessageFromび出しはこれらのパケットに対して無効なIPPacketInformationオブジェクトをReceiveMessageFrom返します。
すべてのIPPacketInformationオブジェクトが有効であることを確認するには、 メソッドを使用してSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)ローカル エンドポイントにtrue
バインドする前に、アプリケーションでソケット オプションを に設定PacketInformationする必要があります。
アプリケーションは、ユニキャスト、マルチキャスト、またはブロードキャスト アドレスを使用してデータグラムが送信されたかどうかを知る必要がある場合に、 パラメーターを調べることができます ipPacketInformation
。
注意
で使用される の EndPoint はAddressFamily、 でReceiveFrom使用される の とEndPointSendTo一致AddressFamilyする必要があります。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.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
指定した 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 メソッドを呼び出す必要があります。
適用対象
.NET