Socket.SendAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Wysyła dane do połączonego gniazda. |
SendAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Wysyła dane do połączonego gniazda. |
SendAsync(ArraySegment<Byte>, SocketFlags) |
Wysyła dane do połączonego gniazda. |
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Wysyła dane do połączonego gniazda. |
SendAsync(IList<ArraySegment<Byte>>) |
Wysyła dane do połączonego gniazda. |
SendAsync(ArraySegment<Byte>) |
Wysyła dane do połączonego gniazda. |
SendAsync(SocketAsyncEventArgs) |
Wysyła dane asynchronicznie do połączonego Socket obiektu. |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Bufor danych do wysłania.
- cancellationToken
- CancellationToken
Token anulowania, który może służyć do anulowania operacji asynchronicznej.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Dotyczy
SendAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffers
- IList<ArraySegment<Byte>>
Lista buforów do wysłania danych.
- socketFlags
- SocketFlags
Bitowa kombinacja wartości SocketFlags, które będą używane podczas wysyłania danych.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
buffers
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Uwagi
Ta metoda przechowuje w zadaniu wszystkie wyjątki inne niż użycie, które mogą zgłaszać synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwróconym zadaniu, ten wyjątek zostanie zgłoszony po oczekiwaniu na zadanie. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. Aby uzyskać informacje o przechowywanych wyjątkach, zobacz wyjątki zgłaszane przez Send(IList<ArraySegment<Byte>>, SocketFlags)usługę .
Dotyczy
SendAsync(ArraySegment<Byte>, SocketFlags)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffer
- ArraySegment<Byte>
Bufor danych do wysłania.
- socketFlags
- SocketFlags
Bitowa kombinacja wartości SocketFlags, które będą używane podczas wysyłania danych.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Dotyczy
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Bufor danych do wysłania.
- socketFlags
- SocketFlags
Bitowa kombinacja wartości SocketFlags, które będą używane podczas wysyłania danych.
- cancellationToken
- CancellationToken
Token anulowania, który może służyć do anulowania operacji asynchronicznej.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Dotyczy
SendAsync(IList<ArraySegment<Byte>>)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffers
- IList<ArraySegment<Byte>>
Lista buforów do wysłania danych.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
buffers
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Uwagi
Ta metoda przechowuje w zadaniu wszystkie wyjątki inne niż użycie, które mogą zgłaszać synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwróconym zadaniu, ten wyjątek zostanie zgłoszony po oczekiwaniu na zadanie. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. Aby uzyskać informacje o przechowywanych wyjątkach, zobacz wyjątki zgłaszane przez Send(IList<ArraySegment<Byte>>)usługę .
Dotyczy
SendAsync(ArraySegment<Byte>)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do połączonego gniazda.
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)
Parametry
- buffer
- ArraySegment<Byte>
Bufor danych do wysłania.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Dotyczy
SendAsync(SocketAsyncEventArgs)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Wysyła dane asynchronicznie do połączonego Socket obiektu.
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
Parametry
Obiekt SocketAsyncEventArgs do użycia dla tej operacji asynchronicznego gniazda.
Zwraca
true
jeśli operacja we/wy jest oczekująca. Zdarzenie Completed parametru e
zostanie podniesione po zakończeniu operacji.
false
jeśli operacja we/wy została ukończona synchronicznie. W takim przypadku Completed zdarzenie parametru e
nie zostanie podniesione, a e
obiekt przekazany jako parametr może zostać zbadany natychmiast po powrocie wywołania metody w celu pobrania wyniku operacji.
Wyjątki
Właściwości Buffer lub BufferList parametru e
muszą odwoływać się do prawidłowych buforów. Można ustawić jedną lub drugą z tych właściwości, ale nie obie w tym samym czasie.
Operacja gniazda była już w toku przy użyciu SocketAsyncEventArgs obiektu określonego w parametrze e
.
Została zamknięta Socket .
Obiekt Socket nie jest jeszcze połączony lub nie został uzyskany za pośrednictwem Accept()metody , AcceptAsync(SocketAsyncEventArgs)lub BeginAccept.
Uwagi
Metoda SendAsync służy do zapisywania danych wychodzących z co najmniej jednego buforu na gniazdie zorientowanym na połączenie. Tę metodę można również użyć w przypadku gniazd bez połączenia, które określiły hosta zdalnego w operacji łączenia.
Metoda SendAsync uruchamia operację wysyłania asynchronicznego do hosta zdalnego ustanowionego w metodzie Accept, AcceptAsync, BeginAccept, BeginConnect, Connectlub ConnectAsync .
Następujące właściwości i zdarzenia obiektu są wymagane do pomyślnego System.Net.Sockets.SocketAsyncEventArgs wywołania tej metody:
SocketAsyncEventArgs.Buffer lub SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count jeśli SocketAsyncEventArgs.Buffer jest ustawiona
SocketAsyncEventArgs.Offset jeśli SocketAsyncEventArgs.Buffer jest ustawiona
Obiekt wywołujący może ustawić SocketAsyncEventArgs.UserToken właściwość na dowolny obiekt stanu użytkownika żądany przed wywołaniem SendAsync metody, aby informacje mogły zostać pobrane w metodzie wywołania zwrotnego. Jeśli wywołanie zwrotne wymaga więcej informacji niż pojedynczy obiekt, można utworzyć małą klasę, aby przechowywać inne wymagane informacje o stanie jako elementy członkowskie.
Metoda SendAsync zgłosi wyjątek, jeśli nie najpierw wywołasz metody Accept, , AcceptAsyncBeginConnectBeginAccept, Connectlub .ConnectAsync
SendAsync Wywołanie metody zapewnia możliwość wysyłania danych w osobnym wątku wykonywania.
W przypadku gniazd zorientowanych na komunikaty nie przekraczaj maksymalnego rozmiaru komunikatów bazowego dostawcy usług gniazd systemu Windows. Jeśli dane są zbyt długie, aby przekazać niepodzielnie przez bazowego dostawcę usług, żadne dane nie są przesyłane, a SendAsync metoda zgłasza SocketException wartość z SocketAsyncEventArgs.SocketError ustawionym kodem błędu Winsock WSAEMSGSIZE (10040).
Należy pamiętać, że pomyślne ukończenie SendAsync metody nie wskazuje, że dane zostały pomyślnie dostarczone.