Socket.ReceiveMessageFrom Yöntem

Tanım

Aşırı Yüklemeler

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

Belirtilen sayıda veriyi belirtilen veri arabelleğinin belirtilen konumuna alır ve SocketFlagsuç nokta ile paket bilgilerini depolar.

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

Belirtilen sayıda veriyi belirtilen veri arabelleğinin belirtilen konumuna alır ve socketFlagsuç nokta ile paket bilgilerini depolar.

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

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen sayıda veriyi belirtilen veri arabelleğinin belirtilen konumuna alır ve SocketFlagsuç nokta ile paket bilgilerini depolar.

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

Parametreler

buffer
Byte[]

Alınan verilerin depolama konumu olan tür Byte dizisi.

offset
Int32

Alınan verileri depolamak için parametresindeki konum buffer .

size
Int32

Alınacak bayt sayısı.

socketFlags
SocketFlags

Değerlerin bit düzeyinde birleşimi SocketFlags .

remoteEP
EndPoint

Başarılı almada güncelleştirilecek uzak konağın uç noktasıyla aynı türde bir EndPoint başvuru.

ipPacketInformation
IPPacketInformation

Tutma IPPacketInformation adresi ve arabirim bilgileri.

Döndürülenler

Alınan bayt sayısı.

Özel durumlar

buffer, null'e eşittir.

-veya-

remoteEP, null'e eşittir.

offset 0'dan küçüktür.

-veya-

offset , uzunluğundan bufferbüyüktür.

-veya-

size 0'dan küçüktür.

-veya-

size , uzaklık parametresinin buffer değeri eksi değerinden büyük.

socketFlags geçerli bir değer bileşimi değildir.

-veya-

LocalEndPoint Özelliği ayarlanmadı.

-veya-

.NET Framework, AMD 64 bit işlemci üzerinde çalışıyor.

-veya-

Yuvaya erişmeye çalışılırken bir hata oluştu.

Açıklamalar

ReceiveMessageFrom yöntemi verileri parametresine buffer okur, başarıyla okunan bayt sayısını döndürür ve verilerin gönderildiği uzak konak uç noktasını ve alınan paket hakkındaki bilgileri yakalar.

ReceiveMessageFrom yöntemi öncelikli olarak bağlantısız bir yuvada ileti verilerini almak için kullanılır. Yuvanın yerel adresi bilinmelidir. Bu yöntem yalnızca veri birimi ve ham yuvalarla kullanılabilir. Yuva, bu yöntemi çağırmadan önce veya Dgram olarak ayarlanmış Raw yuva türüyle başlatılmalıdır. Yuva kullanılarak Socketoluşturulduğunda bu yapılabilir.

İleti odaklı yuvalar için, parametrede belirtilen buffer toplam boyuta kadar parametreye size bir gelen ileti yerleştirilir. offset parametresi, verilerin nereye buffer yerleştirileceğini belirler. içine buffer yerleştirilen gerçek veri miktarı yöntemi tarafından ReceiveMessageFrom döndürülür.

ReceiveMessageFrom yöntemi otomatik olarak yuva seçeneğini PacketInformation belirli truebir için ilk kez çağrılacak şekilde ayarlarSocket. Ancak, döndürülen IPPacketInformation nesne yalnızca yuva seçeneği ayarlandıktan sonra yerel bilgisayara ulaşan paketler için geçerli olacaktır. Bir yuva, yerel uç noktaya bağlı olduğunda (açıkça yöntemi tarafından Bind veya örtük olarak , Connect, ConnectAsyncveya SendTo yöntemlerinden biri SendToAsynctarafından) ve yöntemine ReceiveMessageFrom ilk çağrısı arasında paket gönderilirse, yönteme ReceiveMessageFrom yapılan çağrılar bu paketler için geçersiz IPPacketInformation nesneler döndürür.

Tüm IPPacketInformation nesnelerin geçerli olduğundan emin olmak için, bir uygulamanın yöntemini kullanarak yerel bir uç noktaya bağlanmadan önce yuva seçeneğini PacketInformation olarak ayarlaması trueSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) gerekir.

Bir uygulama, veri biriminin ipPacketInformation tek noktaya yayın, çok noktaya yayın veya yayın adresi kullanılarak gönderilip gönderilmediğini bilmesi gerekiyorsa parametresini inceleyebilir.

Note

AddressFamily içinde EndPoint kullanılan öğesinin ReceiveFrom içinde kullanılan AddressFamilyile EndPoint eşleşmesi SendTo gerekir.

Note

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen sayıda veriyi belirtilen veri arabelleğinin belirtilen konumuna alır ve socketFlagsuç nokta ile paket bilgilerini depolar.

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

Parametreler

buffer
Span<Byte>

Span<T> Alınan verilerin depolama konumu olan bir türByte.

socketFlags
SocketFlags

Değerlerin bit düzeyinde birleşimi SocketFlags .

remoteEP
EndPoint

Başarılı almada güncelleştirilecek uzak konağın uç noktasıyla aynı türde bir EndPoint başvuru.

ipPacketInformation
IPPacketInformation

Tutma IPPacketInformation adresi ve arabirim bilgileri.

Döndürülenler

Alınan bayt sayısı.

Özel durumlar

Socket Nesne kapatıldı.

EndPoint remoteEP şeklindedirnull.

Socket Nesne engelleme modunda değil ve bu zaman uyumlu çağrıyı kabul edemiyor. Bu işlemi gerçekleştirmeden önce Bind yöntemini çağırmalısınız.

Şunlara uygulanır