Socket.ReceiveAsync Yöntem

Tanım

Aşırı Yüklemeler

ReceiveAsync(ArraySegment<Byte>)

Bağlı bir yuvadan veri alır.

ReceiveAsync(IList<ArraySegment<Byte>>)

Bağlı bir yuvadan veri alır.

ReceiveAsync(SocketAsyncEventArgs)

Bağlı Socket bir nesneden veri almak için zaman uyumsuz bir istek başlatır.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Bağlı bir yuvadan veri alır.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Bağlı bir yuvadan veri alır.

ReceiveAsync(Memory<Byte>, CancellationToken)

Bağlı bir yuvadan veri alır.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Bağlı bir yuvadan veri alır.

ReceiveAsync(ArraySegment<Byte>)

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

Bağlı bir yuvadan veri alır.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parametreler

buffer
ArraySegment<Byte>

Alınan veriler için arabellek.

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

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

Şunlara uygulanır

ReceiveAsync(IList<ArraySegment<Byte>>)

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

Bağlı bir yuvadan veri alır.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parametreler

buffers
IList<ArraySegment<Byte>>

Alınan veriler için arabellek listesi.

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

buffers Parametre null idi.

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

Açıklamalar

Bu yöntem, yöntemin zaman uyumlu karşılık geleninin atabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanıyorsa, görev beklenirken bu özel durum oluşturulur. gibi ArgumentExceptionkullanım özel durumları yine de zaman uyumlu olarak oluşturulur. Depolanan özel durumlar için tarafından oluşan Receive(IList<ArraySegment<Byte>>)özel durumlara bakın.

Şunlara uygulanır

ReceiveAsync(SocketAsyncEventArgs)

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

Bağlı Socket bir nesneden veri almak için zaman uyumsuz bir istek başlatır.

public:
 bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (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

Bağımsız değişken geçersizdi. Buffer parametresindeki e veya BufferList özellikleri geçerli arabelleklere başvurmalıdır. Bu özelliklerden biri veya diğeri ayarlanabilir, ancak her ikisi de aynı anda ayarlanamaz.

parametresinde belirtilen e nesne kullanılarak SocketAsyncEventArgs bir yuva işlemi zaten devam ediyor.

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

Açıklamalar

ReceiveAsync yöntemi bağlı yuvalarda veya bağlı bağlantısız yuvalarda kullanılır ve gelen verileri okumak için kullanılır. Yuvanın yerel adresi bilinmelidir.

Bağlı bağlantısız yuvalar için bu işlev, alınan iletilerin kabul edilen adresleri kısıtlar. İşlev yalnızca bağlantıda belirtilen uzak adresten gelen iletileri döndürür. Diğer adreslerden gelen iletiler sessizce atılır.

SocketAsyncEventArgs.SocketFlags parametresindeki e özelliği, Pencere Yuvaları hizmet sağlayıcısına okuma isteği hakkında ek bilgi sağlar. Bu parametreyi kullanma hakkında daha fazla bilgi için bkz System.Net.Sockets.SocketFlags. .

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 ReceiveAsync ö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.

Bayt akış stili yuvalar için gelen veriler arabellek doldurulana, bağlantı kapatılana veya dahili olarak arabelleğe alınan veriler tükenene kadar arabelleğe yerleştirilir.

İleti yönelimli yuvalar için, arabelleğe parametreyle e ilişkili arabelleğin toplam boyutuna kadar bir gelen ileti yerleştirilir. İleti arabellekten büyükse, arabellek iletinin ilk bölümüyle doldurulur.

Bağlantı odaklı yuvalar için yöntemi, ReceiveAsync yuvanın bayt akışı mı yoksa ileti odaklı mı olduğuna bağlı olarak iki yoldan biriyle sanal bağlantı hattının düzgün sonlandırıldığını gösterebilir. Bayt akışları için okunan sıfır bayt, düzgün kapatmayı ve daha fazla bayt okunmayacak olduğunu gösterir. Genellikle sıfır bayt iletiye izin verilebilen ileti odaklı yuvalar için, düzgün kapatmayı göstermek için yerel Winsock WSAEDISCON hata koduna (10101) ayarlanmış olan bir SocketExceptionSocketAsyncEventArgs.SocketError kullanılır. Her durumda, yerel Winsock WSAECONNRESET hata koduna (10054) ayarlanmış olan bir SocketExceptionSocketAsyncEventArgs.SocketError , iptal edici bir kapatmanın oluştuğuna işaret eder.

Ayrıca bkz.

Şunlara uygulanır

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

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

Bağlı bir yuvadan veri alır.

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

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.

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

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

Şunlara uygulanır

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

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

Bağlı bir yuvadan veri alır.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parametreler

buffers
IList<ArraySegment<Byte>>

Alınan veriler için arabellek listesi.

socketFlags
SocketFlags

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

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

buffers Parametre null idi.

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

Açıklamalar

Bu yöntem, yöntemin zaman uyumlu karşılık geleninin atabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanıyorsa, görev beklenirken bu özel durum oluşturulur. gibi ArgumentExceptionkullanım özel durumları yine de zaman uyumlu olarak oluşturulur. Depolanan özel durumlar için tarafından oluşan Receive(IList<ArraySegment<Byte>>, SocketFlags)özel durumlara bakın.

Şunlara uygulanır

ReceiveAsync(Memory<Byte>, CancellationToken)

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

Bağlı bir yuvadan veri alır.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parametreler

buffer
Memory<Byte>

Alınan veriler için arabellek.

cancellationToken
CancellationToken

Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

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

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

Şunlara uygulanır

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

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

Bağlı bir yuvadan veri alır.

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

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.

cancellationToken
CancellationToken

Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.

Döndürülenler

Alınan bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

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

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

Şunlara uygulanır