Socket.ReceiveMessageFromAsync Yöntem

Tanım

Aşırı Yüklemeler

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Belirtilen sayıda veriyi veri arabelleğindeki SocketFlagsbelirtilen konuma zaman uyumsuz olarak almaya başlar ve uç nokta ile paket bilgilerini depolar.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

Belirtilen sayıda veriyi veri arabelleğindeki SocketFlagsbelirtilen konuma zaman uyumsuz olarak almaya başlar ve uç nokta ile paket bilgilerini depolar.

public:
 bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (e As SocketAsyncEventArgs) As Boolean

Parametreler

e
SocketAsyncEventArgs

SocketAsyncEventArgs Bu zaman uyumsuz yuva işlemi için kullanılacak nesne.

Döndürülenler

true G/Ç işlemi bekliyorsa. Completed parametresindeki e olay, işlem tamamlandıktan sonra tetiklenir.

false G/Ç işlemi zaman uyumlu olarak tamamlandıysa. Bu durumda, Completed parametredeki e olay tetiklenmez ve e parametre olarak geçirilen nesne, işlemin sonucunu almak için yöntem çağrısı döndürüldükten hemen sonra incelenebilir.

Özel durumlar

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

Açıklamalar

ReceiveMessageFromAsync 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.

Çağıranın SocketAsyncEventArgs.RemoteEndPoint özelliğini uzak konağın uç noktasıyla aynı türde bir EndPoint değere ayarlaması gerekir. Özellik, başarılı alma işleminin gerçek uzak uç noktasına güncelleştirileceğini gösterir.

Bu yöntemi başarıyla çağırmak için nesnedeki System.Net.Sockets.SocketAsyncEventArgs aşağıdaki özellikler ve olaylar gereklidir:

Çağıran, yöntemi çağırmadan ReceiveMessageFromAsync önce istenen herhangi bir kullanıcı durumu nesnesine özelliğini ayarlayabilirSocketAsyncEventArgs.UserToken, böylece bilgiler geri çağırma yönteminde alınabilir. Geri çağırma tek bir nesneden daha fazla bilgiye ihtiyaç duyuyorsa, diğer gerekli durum bilgilerini üye olarak tutmak için küçük bir sınıf oluşturulabilir.

İleti odaklı yuvalar için, arabelleğe arabelleğinin toplam boyutuna kadar bir gelen ileti yerleştirilir. SocketAsyncEventArgs.Count ve SocketAsyncEventArgs.Offset özellikleri, verilerin arabelleğe nereye yerleştirileceğini ve veri miktarını belirler.

ReceiveMessageFromAsync yöntemi, yuva seçeneğini true otomatik olarak belirli Socketbir için ilk kez çağrılacak şekilde ayarlarPacketInformation. Ancak, IPPacketInformation nesne yalnızca yuva seçeneği ayarlandıktan sonra yerel bilgisayara ulaşan paketler için geçerli olacaktır. Yuva yerel bir 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 ReceiveMessageFromAsync yapılan ilk çağrı arasında bir yuva paketleri gönderilirse, yöntemine ReceiveMessageFromAsync yapılan çağrılar bu paketler için geçersiz IPPacketInformation nesnelere neden olur.

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ğinitrue olarak ayarlaması PacketInformationSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) gerekir.

Bir uygulama, veri biriminin tek noktaya yayın, çok noktaya yayın veya yayın adresi kullanılarak gönderilip gönderilmediğini bilmesi gerekiyorsa sonuçta IPPacketInformation elde edilen nesneleri inceleyebilir.

Ayrıca bkz.

Şunlara uygulanır

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

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

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parametreler

buffer
ArraySegment<Byte>

Alınan veriler için arabellek.

remoteEndPoint
EndPoint

Uzak konağın uç noktasıyla aynı türde bir uç nokta.

Döndürülenler

Alınan bayt sayısını ve gönderen ana bilgisayar hakkında ek bilgileri içeren bir SocketReceiveMessageFromResult ile tamamlanan zaman uyumsuz bir görev.

Özel durumlar

Nesne Socket kapatıldı.

remoteEndPoint, null değeridir.

Bu işlemi gerçekleştirmeden önce Bind yöntemini çağırmanız gerekir.

Şunlara uygulanır

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parametreler

buffer
ArraySegment<Byte>

Alınan veriler için arabellek.

socketFlags
SocketFlags

Verileri alırken kullanılacak SocketFlags değerlerinin bit düzeyinde birleşimi.

remoteEndPoint
EndPoint

Uzak konağın uç noktasıyla aynı türde bir uç nokta.

Döndürülenler

Alınan bayt sayısını ve gönderen ana bilgisayar hakkında ek bilgileri içeren bir SocketReceiveMessageFromResult ile tamamlanan zaman uyumsuz bir görev.

Özel durumlar

Nesne Socket kapatıldı.

remoteEndPoint, null değeridir.

Bu işlemi gerçekleştirmeden önce Bind yöntemini çağırmanız gerekir.

Şunlara uygulanır

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parametreler

buffer
Memory<Byte>

Alınan veriler için arabellek.

remoteEndPoint
EndPoint

Uzak konağın uç noktasıyla aynı türde bir uç nokta.

cancellationToken
CancellationToken

Zaman uyumsuz işlemin sinyalini vermek için kullanılabilecek bir iptal belirteci iptal edilmelidir.

Döndürülenler

Alınan bayt sayısını ve gönderen ana bilgisayar hakkında ek bilgileri içeren bir SocketReceiveMessageFromResult ile tamamlanan zaman uyumsuz bir görev.

Özel durumlar

Nesne Socket kapatıldı.

remoteEndPoint, null değeridir.

Bu işlemi gerçekleştirmeden önce Bind yöntemini çağırmanız gerekir.

İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.

Şunlara uygulanır

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Verileri alır ve iletinin göndereni hakkında ek bilgiler döndürür.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parametreler

buffer
Memory<Byte>

Alınan veriler için arabellek.

socketFlags
SocketFlags

Verileri alırken kullanılacak SocketFlags değerlerinin bit düzeyinde birleşimi.

remoteEndPoint
EndPoint

Uzak konağın uç noktasıyla aynı türde bir uç nokta.

cancellationToken
CancellationToken

Zaman uyumsuz işlemin sinyalini vermek için kullanılabilecek bir iptal belirteci iptal edilmelidir.

Döndürülenler

Alınan bayt sayısını ve gönderen ana bilgisayar hakkında ek bilgileri içeren bir SocketReceiveMessageFromResult ile tamamlanan zaman uyumsuz bir görev.

Özel durumlar

Nesne Socket kapatıldı.

remoteEndPoint, null değeridir.

Bu işlemi gerçekleştirmeden önce Bind yöntemini çağırmanız gerekir.

İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.

Şunlara uygulanır