Socket.SendToAsync 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
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
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
RemoteEndPoint null olamaz.
parametresinde belirtilen e
nesne kullanılarak SocketAsyncEventArgs bir yuva işlemi zaten devam ediyor.
Kapatılmış Socket .
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.
Kapatılmış Socket .
Ş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.
Kapatılmış Socket .
Ş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.
Kapatılmış Socket .
İ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.
Kapatılmış Socket .
İ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.
Kapatılmış Socket .
İptal belirteci iptal edildi. Bu özel durum, döndürülen görevde depolanır.