Socket.ReceiveAsync Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| 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
- 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
Zaman uyumsuz alma işlemini temsil eden bir görev. özelliğinin Result değeri, sıfır (0) arasında okunan buffer toplam bayt sayısını ve istenen bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
Kapatılmış Socket .
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
- 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
Zaman uyumsuz alma işlemini temsil eden bir görev. özelliğinin Result değeri, sıfır (0) ile istenen bayt sayısı arasındaki arabelleklere okunan toplam bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
buffers Parametre null idi.
Kapatılmış Socket .
Yuvaya erişmeye çalışılırken bir hata oluştu.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Receive(IList<ArraySegment<Byte>>)oluşan özel durumlara bakın.
Şunlara uygulanır
ReceiveAsync(SocketAsyncEventArgs)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- 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
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, yöntem çağrısı işlemin sonucunu almak için döndürdükten hemen sonra incelenebilir.
Özel durumlar
Bağımsız değişken geçersizdi.
Buffer Parametredeki 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 e belirtilen nesne kullanılarak SocketAsyncEventArgs bir yuva işlemi zaten devam ediyor.
Kapatılmış Socket .
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 edildiği 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, Window Sockets hizmet sağlayıcısına okuma isteği hakkında ek bilgiler 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:
SocketAsyncEventArgs.Buffer veya SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Countayarlandıysa SocketAsyncEventArgs.Buffer
SocketAsyncEventArgs.Offsetayarlandıysa SocketAsyncEventArgs.Buffer
Çağıran, yöntemi çağırmadan SocketAsyncEventArgs.UserToken önce istenen herhangi bir kullanıcı durumu nesnesine özelliğini ayarlayabilirReceiveAsync, böylece bilgiler geri çağırma yönteminde alınabilir. Geri çağırma için tek bir nesneden daha fazla bilgi gerekiyorsa, gerekli diğer 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 odaklı yuvalar için, gelen bir ileti arabelleğe parametreyle e ilişkili arabelleğin toplam boyutuna kadar 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ı olan 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 kapanışı ve daha fazla bayt okunmayacak olduğunu gösterir. Genellikle izin verilebilen sıfır bayt iletisinin bulunduğu 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
- 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
Zaman uyumsuz alma işlemini temsil eden bir görev. özelliğinin Result değeri, sıfır (0) arasında okunan buffer toplam bayt sayısını ve istenen bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
Kapatılmış Socket .
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
- 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
Zaman uyumsuz alma işlemini temsil eden bir görev. özelliğinin Result değeri, sıfır (0) arasında okunan buffer toplam bayt sayısını ve istenen bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
buffers Parametre null idi.
Kapatılmış Socket .
Yuvaya erişmeye çalışılırken bir hata oluştu.
Açıklamalar
Bu yöntem, yöntemin zaman uyumlu karşılık geleninin oluşturabileceği tüm kullanım dışı özel durumları döndürdüğü görevde depolar. Döndürülen görevde bir özel durum depolanırsa, görev beklendiğinde bu özel durum oluşturulur. ArgumentExceptiongibi kullanım özel durumları hâlâ eşzamanlı olarak fırlatılır. Depolanan özel durumlar için tarafından Receive(IList<ArraySegment<Byte>>, SocketFlags)oluşan özel durumlara bakın.
Şunlara uygulanır
ReceiveAsync(Memory<Byte>, CancellationToken)
- Kaynak:
- Socket.Tasks.cs
- Kaynak:
- Socket.Tasks.cs
- 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
- cancellationToken
- CancellationToken
Zaman uyumsuz işlemi iptal etmek için kullanılabilecek bir iptal belirteci.
Döndürülenler
ValueTask<TResult> Zaman uyumsuz alma işlemini temsil eden bir. özelliğinin Result değeri, sıfır (0) arasında okunan buffer toplam bayt sayısını ve istenen bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
Kapatılmış Socket .
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
- 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
- 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
ValueTask<TResult> Zaman uyumsuz alma işlemini temsil eden bir. özelliğinin Result değeri, sıfır (0) arasında okunan buffer toplam bayt sayısını ve istenen bayt sayısını içerir. Sonuç değeri yalnızca sıfır bayt istendiyse veya eş yuva düzgün bir kapatma gerçekleştirdiğinden daha fazla bayt yoksa sıfırdır (0). Sıfır bayt istenirse, alma işlemleri hemen tamamlanabilir veya en az bir bayt kullanılabilir olana kadar (ancak herhangi bir veri kullanılmadan) tamamlanmayabilir.
Özel durumlar
Kapatılmış Socket .
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.