Aracılığıyla paylaş


Socket.SendAsync Yöntem

Tanım

Aşırı Yüklemeler

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Bağlı bir yuvaya veri gönderir.

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

Bağlı bir yuvaya veri gönderir.

SendAsync(ArraySegment<Byte>, SocketFlags)

Bağlı bir yuvaya veri gönderir.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Bağlı bir yuvaya veri gönderir.

SendAsync(IList<ArraySegment<Byte>>)

Bağlı bir yuvaya veri gönderir.

SendAsync(ArraySegment<Byte>)

Bağlı bir yuvaya veri gönderir.

SendAsync(SocketAsyncEventArgs)

Verileri bağlı Socket bir nesneye zaman uyumsuz olarak gönderir.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffer
ReadOnlyMemory<Byte>

Gönderilecek verilerin arabelleği.

cancellationToken
CancellationToken

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

Döndürülenler

Gönderilen bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

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

Şunlara uygulanır

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

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffers
IList<ArraySegment<Byte>>

Gönderilecek verilerin arabellek listesi.

socketFlags
SocketFlags

Verileri gönderirken kullanılacak SocketFlags değerlerinin bit düzeyinde birleşimi.

Döndürülenler

Gönderilen bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

buffers, null değeridir.

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 Send(IList<ArraySegment<Byte>>, SocketFlags)özel durumlara bakın.

Şunlara uygulanır

SendAsync(ArraySegment<Byte>, SocketFlags)

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffer
ArraySegment<Byte>

Gönderilecek verilerin arabelleği.

socketFlags
SocketFlags

Verileri gönderirken kullanılacak SocketFlags değerlerinin bit düzeyinde birleşimi.

Döndürülenler

Gönderilen 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

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffer
ReadOnlyMemory<Byte>

Gönderilecek verilerin arabelleği.

socketFlags
SocketFlags

Verileri gönderirken 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

Gönderilen 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

SendAsync(IList<ArraySegment<Byte>>)

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffers
IList<ArraySegment<Byte>>

Gönderilecek verilerin arabellek listesi.

Döndürülenler

Gönderilen bayt sayısıyla tamamlanan zaman uyumsuz bir görev.

Özel durumlar

buffers, null değeridir.

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 Send(IList<ArraySegment<Byte>>)özel durumlara bakın.

Şunlara uygulanır

SendAsync(ArraySegment<Byte>)

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

Bağlı bir yuvaya veri gönderir.

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

Parametreler

buffer
ArraySegment<Byte>

Gönderilecek verilerin arabelleği.

Döndürülenler

Gönderilen 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

SendAsync(SocketAsyncEventArgs)

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

Verileri bağlı Socket bir nesneye zaman uyumsuz olarak gönderir.

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

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.

Socket henüz bağlı değil veya bir Accept(), AcceptAsync(SocketAsyncEventArgs)veya BeginAcceptyöntemi aracılığıyla alınamadı.

Açıklamalar

SendAsync yöntemi, bağlantı odaklı bir yuvadaki bir veya daha fazla arabellekten giden verileri yazmak için kullanılır. Ancak bu yöntem, bir bağlantı işleminde uzak bir ana bilgisayar belirtmiş olan bağlantısız yuvalarda da kullanılabilir.

SendAsync yöntemi , , AcceptAsync, ConnectBeginAcceptBeginConnect, veya ConnectAsync yönteminde Acceptkurulan uzak konağa zaman uyumsuz bir gönderme işlemi başlatır.

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

yöntemiSendAsync, ilk olarak , , AcceptAsyncBeginConnectBeginAccept, Connectveya ConnectAsyncçağrısı Acceptyapmazsanız bir özel durum oluşturur.

yöntemini çağırmak SendAsync , ayrı bir yürütme iş parçacığı içinde veri gönderme olanağı sağlar.

İleti odaklı yuvalar için, temel alınan Windows yuva hizmeti sağlayıcısının ileti boyutu üst sınırını aşmayın. Veriler temel alınan hizmet sağlayıcısından atomik olarak geçemeyecek kadar uzunsa, hiçbir veri iletilmez ve SendAsync yöntem yerel Winsock WSAEMSGSIZE hata koduna (10040) ayarlanmış bir SocketExceptionSocketAsyncEventArgs.SocketError oluşturur.

Yöntemin başarıyla tamamlanmasının SendAsync verilerin başarıyla teslim edildiğine işaret etmediğini unutmayın.

Ayrıca bkz.

Şunlara uygulanır