Aracılığıyla paylaş


Socket.SendToAsync Yöntem

Tanım

Aşırı Yüklemeler

SendToAsync(SocketAsyncEventArgs)

Verileri belirli bir uzak konağa zaman uyumsuz olarak gönderir.

SendToAsync(ArraySegment<Byte>, EndPoint)

Verileri belirtilen uzak konağa gönderir.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Verileri belirtilen uzak konağa gönderir.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Verileri belirtilen uzak konağa gönderir.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Verileri belirtilen uzak konağa gönderir.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Belirtilen SocketFlagskullanarak belirli bir uç noktaya veri gönderir.

SendToAsync(SocketAsyncEventArgs)

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

Verileri belirli bir uzak konağa zaman uyumsuz olarak gönderir.

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

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

Belirtilen protokol bağlantı odaklı, ancak Socket henüz bağlı değil.

Açıklamalar

yöntemi, SendToAsync parametresinin özelliğinde SocketAsyncEventArgs.RemoteEndPointe belirtilen uzak konağa zaman uyumsuz bir gönderme işlemi başlatır. yöntemini çağırmak SendToAsync , ayrı bir yürütme iş parçacığı içinde veri gönderme olanağı sağlar. Bu yöntem bağlantısız protokoller için tasarlanmış olsa da, SendToAsync hem bağlantısız hem de bağlantı odaklı protokollerle çalışır.

Tamamlanma bildirimi almak için EventHandler<SocketAsyncEventArgs> temsilcisini uygulayan bir geri çağırma yöntemi oluşturmanız ve geri çağırmayı SocketAsyncEventArgs.Completed olaya eklemeniz gerekir.

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

Bağlantı odaklı bir protokol kullanıyorsanız, önce , AcceptAsync, , BeginAcceptBeginConnect, Connectveya ConnectAsync yöntemini çağırmanız Acceptgerekir. Aksi takdirde SendToAsync bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanılırken, SendToAsync yöntemi özelliğini yoksayar SocketAsyncEventArgs.RemoteEndPoint ve , , AcceptAsync, BeginConnectBeginAccept, Connectveya ConnectAsync yönteminde Acceptoluşturulan öğesine veri System.Net.EndPoint gönderir.

Bağlantısız bir protokol kullanıyorsanız, çağrısından SendToAsyncönce , Connectveya ConnectAsync yöntemiyle BeginConnectvarsayılan bir uzak konak oluşturmanız gerekmez. Bunu yalnızca veya SendAsync yöntemlerini çağırmak BeginSend istiyorsanız yapmanız gerekir. çağrısından önce , Connectveya ConnectAsync yöntemini çağırırsanız SocketAsyncEventArgs.RemoteEndPointBeginConnectSendToAsync, özellik yalnızca bu gönderme işlemi için belirtilen varsayılan uzak konağı geçersiz kılar. Yöntemini çağırmanız Bind da gerekmez. Bu durumda, temel alınan hizmet sağlayıcısı en uygun yerel ağ IP adresini ve bağlantı noktası numarasını atar. Temel alınan hizmet sağlayıcısının ücretsiz bir bağlantı noktası seçmesini istiyorsanız sıfır bağlantı noktası numarası kullanın. Atanan yerel ağ IP adresini ve bağlantı noktası numarasını tanımlamanız gerekiyorsa, olay sinyalini aldıktan ve ilişkili temsilciler çağrıldıktan sonra SocketAsyncEventArgs.Completed özelliğini kullanabilirsinizLocalEndPoint.

Yayın adresine veri göndermek istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini SocketOptionName.Broadcast true olarak ayarlamanız gerekir. Ayrıca, arabelleğinizin boyutunun temel alınan hizmet sağlayıcısının en büyük paket boyutunu aşmadığından da emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve SendToAsync bir SocketExceptionoluşturur.

Özelliğinde SocketAsyncEventArgs.SocketFlags DontRoute bayrağını belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecek.

İleti odaklı yuvalar için, temel alınan aktarımın ileti boyutu üst sınırını aşmamaya dikkat edilmelidir. Arabelleğin boyutu temel alınan hizmet sağlayıcısının en büyük paket boyutunu aşarsa, veri birimi gönderilmez ve SendToAsync bir SocketExceptionoluşturur. Bir SendToAsync yöntemin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez.

Ayrıca bkz.

Şunlara uygulanır

SendToAsync(ArraySegment<Byte>, EndPoint)

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

Verileri belirtilen uzak konağa gönderir.

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

Parametreler

buffer
ArraySegment<Byte>

Gönderilecek verilerin arabelleği.

remoteEP
EndPoint

Verilerin gönderildiği uzak konak.

Döndürülenler

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

Özel durumlar

remoteEP, null değeridir.

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

Şunlara uygulanır

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Verileri belirtilen uzak konağa gönderir.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) 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.

remoteEP
EndPoint

Verilerin gönderildiği uzak konak.

Döndürülenler

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

Özel durumlar

remoteEP, null değeridir.

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

Şunlara uygulanır

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

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

Verileri belirtilen uzak konağa gönderir.

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

Parametreler

buffer
ReadOnlyMemory<Byte>

Gönderilecek verilerin arabelleği.

remoteEP
EndPoint

Verilerin gönderildiği uzak konak.

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

remoteEP, null değeridir.

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

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Verileri belirtilen uzak konağa gönderir.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint, 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.

remoteEP
EndPoint

Verilerin gönderildiği uzak konak.

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

remoteEP, null değeridir.

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

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

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

Belirtilen SocketFlagskullanarak belirli bir uç noktaya veri gönderir.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, 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 değerlerin SocketFlags bit düzeyinde birleşimi.

socketAddress
SocketAddress

SocketAddress Verilerin hedefini temsil eden.

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

socketAddress, null değeridir.

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