Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Method

定義

指定した SocketFlags を使用して、指定したバイト数のデータをデータ バッファー内の指定した位置で受信して、エンドポイントおよびパケット情報を格納します。Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

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 *  *  *  -> 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 型の配列。An array of type Byte that is the storage location for received data.

offset
Int32 Int32 Int32 Int32

受信したデータを格納する、buffer パラメーター内の位置。The position in the buffer parameter to store the received data.

size
Int32 Int32 Int32 Int32

受信するバイト数。The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

remoteEP
EndPoint EndPoint EndPoint EndPoint

リモート サーバーを表す、参照渡しされた EndPointAn EndPoint, passed by reference, that represents the remote server.

ipPacketInformation
IPPacketInformation IPPacketInformation IPPacketInformation IPPacketInformation

アドレスとインターフェイスの情報を保持する IPPacketInformationAn IPPacketInformation holding address and interface information.

戻り値

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

- または- or- remoteEPnullです。remoteEP is null.

offset が 0 未満です。offset is less than 0.

または-or- offsetbuffer の長さを超えています。offset is greater than the length of buffer.

または-or- size が 0 未満です。size is less than 0.

または-or- size が、buffer の長さからオフセット パラメーターの値を引いた値を超えています。size is greater than the length of the buffer minus the value of the offset parameter.

socketFlags は、値の有効な組み合わせではありません。socketFlags is not a valid combination of values.

または-or- LocalEndPoint プロパティが設定されていませんでした。The LocalEndPoint property was not set.

または-or- .NET Framework が、AMD 64 ビット プロセッサ上で実行されています。The .NET Framework is running on an AMD 64-bit processor.

または-or- ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Windows 2000 以前のオペレーティング システムです。このメソッドを使用するには、Windows XP が必要です。The operating system is Windows 2000 or earlier, and this method requires Windows XP.

注釈

ReceiveMessageFromメソッドへのデータを読み取り、bufferパラメーターが、正常に読み取られたバイト数を返し、データの送信元、受信したパケットに関する情報と、リモート ホスト エンドポイントをキャプチャします。The ReceiveMessageFrom method reads data into the buffer parameter, returns the number of bytes successfully read, and captures the remote host endpoint from which the data was sent, as well as information about the received packet.

ReceiveMessageFromコネクションレス ソケットでのメッセージ データを受信するには、主にメソッドを使用します。The ReceiveMessageFrom method is used primarily to receive message data on a connectionless socket. ソケットのローカル アドレスを認識する必要があります。The socket's local address must be known. このメソッドは、データグラムと raw ソケットでのみ使用できます。This method can only be used with datagram and raw sockets. ソケットの種類に設定されたソケットを初期化する必要がありますDgramまたはRawこのメソッドを呼び出す前にします。The socket must be initialized with the socket type set to Dgram or Raw before calling this method. これを使用して、ソケットが作成されるときにSocketします。This can be done when the socket is constructed using Socket.

受信メッセージをまとめてメッセージ指向のソケット、bufferパラメーターで指定された合計サイズまで、sizeパラメーター。For message-oriented sockets, an incoming message is placed into the buffer parameter up to the total size specified in the size parameter. offsetのどの場所を指定します、bufferデータが配置されます。The offset parameter determines where in the buffer the data is placed. 実際のデータ量がまとめて、bufferによって返される、ReceiveMessageFromメソッド。The actual amount of data placed into the buffer is returned by the ReceiveMessageFrom method.

ReceiveMessageFromメソッドに自動的にメソッドを設定、PacketInformationソケット オプションtrue初めて呼び出された、指定されたSocketします。The ReceiveMessageFrom method automatically method sets the PacketInformation socket option to true the first time it is called for a given Socket. ただし、返されたIPPacketInformationオブジェクトがソケット オプションが設定された後に、ローカル コンピューターに到達するパケットの有効のみになります。However, the returned IPPacketInformation object will only be valid for packets which arrive at the local computer after the socket option has been set. ローカル エンドポイントにバインドされているときに、ソケットの間でパケットが送信する場合 (によって明示的に、Bindメソッドのいずれかによって暗黙的にまたは、 ConnectConnectAsyncSendTo、またはSendToAsyncメソッド) とその最初の呼び出し、 ReceiveMessageFromメソッドの呼び出しにReceiveMessageFromメソッドは無効な返しますIPPacketInformationこれらのパケットのオブジェクト。If a socket is sent packets between when it is bound to a local endpoint (explicitly by the Bind method or implicitly by one of the Connect, ConnectAsync, SendTo, or SendToAsync methods) and its first call to the ReceiveMessageFrom method, calls to ReceiveMessageFrom method will return invalid IPPacketInformation objects for these packets.

確実にすべてIPPacketInformationオブジェクトが正しいこと、アプリケーションを設定する必要があります、PacketInformationソケット オプションtrueを使用して、ローカル エンドポイントにバインドされる前に、SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)メソッド。To ensure that all IPPacketInformation objects are valid, an application should set the PacketInformation socket option to true before it is bound to a local endpoint using the SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) method.

アプリケーションを調べることができます、ipPacketInformationユニキャスト、マルチキャストまたはブロードキャスト アドレスを使用してデータグラムが送信されたかを把握する必要がある場合は、パラメーター。An application can examine the ipPacketInformation parameter if it needs to know if the datagram was sent using a unicast, multicast, or broadcast address.

注意

AddressFamilyEndPointで使用されるReceiveFromと一致する必要があります、AddressFamilyEndPointで使用されるSendToします。The AddressFamily of the EndPoint used in ReceiveFrom needs to match the AddressFamily of the EndPoint used in SendTo.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

セキュリティ

SocketPermission
ネットワークからの接続を受け入れるため。for accepting connections from the network. Accept (関連する列挙体)Associated enumeration: Accept.

適用対象

こちらもご覧ください