Socket.ReceiveMessageFrom Yöntem

Tanım

Aşırı Yüklemeler

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

Belirtilen bayt sayısını belirtilen SocketFlagsveri arabelleğinin belirtilen konumuna alır ve uç nokta ile paket bilgilerini depolar.

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

Belirtilen bayt sayısını belirtilen socketFlagsveri arabelleğinin belirtilen konumuna alır ve uç nokta ile paket bilgilerini depolar.

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

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

Belirtilen bayt sayısını belirtilen SocketFlagsveri arabelleğinin belirtilen konumuna alır ve uç 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 değeridir.

-veya-

remoteEP, null değeridir.

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 Özellik 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ın yanı sıra alınan paket hakkındaki bilgileri yakalar.

ReceiveMessageFrom yöntemi öncelikle 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 Raw olarak ayarlanmış Dgram yuva türüyle başlatılmalıdır. Yuva kullanılarak Socketoluşturulduğunda bu yapılabilir.

İleti odaklı yuvalar için, parametreye buffer parametrede belirtilen size toplam boyuta kadar 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 true belirli Socketbir için ilk kez çağrılacak şekilde ayarlarPacketInformation. 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. Yuva, yerel uç noktaya bağlı olduğunda (açıkça yöntemi veya Bind örtük olarak , ConnectAsync, SendToveya SendToAsync yöntemlerinden biri Connecttarafından) ve yöntemine ReceiveMessageFrom ilk çağrısı arasında paketler 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, uygulamanın yöntemini kullanarak yerel uç noktaya bağlanmadan önce yuva seçeneğini true olarak ayarlaması PacketInformationSetSocketOption(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.

Not

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

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır

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

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

Belirtilen bayt sayısını belirtilen socketFlagsveri arabelleğinin belirtilen konumuna alır ve uç 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 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

Nesne Socket 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ğırmanız gerekir.

Şunlara uygulanır