Socket.SendToAsync 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
SendToAsync(SocketAsyncEventArgs) |
Wysyła dane asynchronicznie do określonego hosta zdalnego. |
SendToAsync(ArraySegment<Byte>, EndPoint) |
Wysyła dane do określonego hosta zdalnego. |
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Wysyła dane do określonego hosta zdalnego. |
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken) |
Wysyła dane do określonego hosta zdalnego. |
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Wysyła dane do określonego hosta zdalnego. |
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken) |
Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu . |
SendToAsync(SocketAsyncEventArgs)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Wysyła dane asynchronicznie do określonego hosta zdalnego.
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
Parametry
Obiekt SocketAsyncEventArgs do użycia dla tej operacji asynchronicznego gniazda.
Zwraca
true
jeśli operacja we/wy jest oczekująca. Zdarzenie Completed w parametrze 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 zgłoszone, a e
obiekt przekazany jako parametr może zostać zbadany natychmiast po powrocie wywołania metody w celu pobrania wyniku operacji.
Wyjątki
Parametr RemoteEndPoint nie może mieć wartości null.
Operacja gniazda była już w toku przy użyciu SocketAsyncEventArgs obiektu określonego w parametrze e
.
Element Socket został zamknięty.
Określony protokół jest zorientowany na połączenie, ale Socket nie jest jeszcze połączony.
Uwagi
Metoda SendToAsync uruchamia asynchroniczną operację wysyłania do hosta zdalnego określonego we SocketAsyncEventArgs.RemoteEndPoint właściwości parametru e
. SendToAsync Wywołanie metody umożliwia wysyłanie danych w osobnym wątku wykonywania. Mimo że ta metoda jest przeznaczona dla protokołów bez połączenia, SendToAsync działa zarówno z protokołami bez połączenia, jak i zorientowanymi na połączenia.
Aby uzyskać powiadomienie o zakończeniu, należy utworzyć metodę wywołania zwrotnego, która implementuje delegata EventHandler<SocketAsyncEventArgs> i dołączyć wywołanie zwrotne do SocketAsyncEventArgs.Completed zdarzenia.
Następujące właściwości i zdarzenia obiektu System.Net.Sockets.SocketAsyncEventArgs są wymagane do pomyślnego wywołania tej metody:
Obiekt wywołujący może ustawić SocketAsyncEventArgs.UserToken właściwość na dowolny obiekt stanu użytkownika żądany przed wywołaniem SendToAsync metody, aby informacje można było pobrać w metodzie wywołania zwrotnego. Jeśli wywołanie zwrotne wymaga więcej informacji niż pojedynczy obiekt, można utworzyć małą klasę do przechowywania innych wymaganych informacji o stanie jako elementów członkowskich.
Jeśli używasz protokołu zorientowanego na połączenie, musisz najpierw wywołać metodę Accept, , BeginAcceptAcceptAsync, BeginConnect, , Connectlub ConnectAsync . W przeciwnym razie SendToAsync zgłosi błąd SocketException. W przypadku korzystania z protokołu SendToAsync zorientowanego na połączenie metoda zignoruje SocketAsyncEventArgs.RemoteEndPoint właściwość i wyśle dane do System.Net.EndPoint metody , Accept, AcceptAsync, BeginAcceptBeginConnect, Connectlub ConnectAsync .
Jeśli używasz protokołu bez połączenia, nie musisz ustanawiać domyślnego hosta zdalnego za pomocą BeginConnectmetody , Connectlub ConnectAsync przed wywołaniem metody SendToAsync. Należy to zrobić tylko wtedy, gdy zamierzasz wywołać BeginSend metody lub SendAsync . Jeśli wywołasz metodę BeginConnect, Connectlub ConnectAsync przed wywołaniem SendToAsyncmetody , SocketAsyncEventArgs.RemoteEndPoint właściwość zastąpi określony domyślny host zdalny tylko dla tej operacji wysyłania. Nie jest również wymagane wywołanie Bind metody . W takim przypadku podstawowy dostawca usług przypisze najbardziej odpowiedni adres IP i numer portu sieci lokalnej. Użyj numeru portu zero, jeśli chcesz, aby podstawowy dostawca usług wybrał bezpłatny port. Jeśli musisz zidentyfikować przypisany adres IP i numer portu sieci lokalnej, możesz użyć LocalEndPoint właściwości po SocketAsyncEventArgs.Completed zasygnalizowanej zdarzeniu i wywołaniu skojarzonych delegatów.
Jeśli chcesz wysłać dane do adresu emisji, musisz najpierw wywołać metodę SetSocketOption i ustawić opcję gniazda dla SocketOptionName.Broadcast wartości true. Należy również upewnić się, że rozmiar buforu nie przekracza maksymalnego rozmiaru pakietu bazowego dostawcy usług. Jeśli tak się stanie, datagram nie zostanie wysłany i SendToAsync zgłosi błąd SocketException.
Jeśli określisz flagę SocketAsyncEventArgs.SocketFlags DontRoute we właściwości , wysyłane dane nie będą kierowane.
W przypadku gniazd zorientowanych na komunikaty należy zachować ostrożność, aby nie przekraczać maksymalnego rozmiaru komunikatu bazowego transportu. Jeśli rozmiar buforu przekracza maksymalny rozmiar pakietu bazowego dostawcy usług, datagram nie zostanie wysłany i SendToAsync zgłosi błąd SocketException. Pomyślne ukończenie SendToAsync metody nie wskazuje, że dane zostały pomyślnie dostarczone.
Zobacz też
Dotyczy
SendToAsync(ArraySegment<Byte>, EndPoint)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do określonego hosta zdalnego.
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)
Parametry
- buffer
- ArraySegment<Byte>
Bufor danych do wysłania.
- remoteEP
- EndPoint
Host zdalny, do którego mają być wysyłane dane.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
remoteEP
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Dotyczy
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do określonego hosta zdalnego.
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)
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.
- remoteEP
- EndPoint
Host zdalny, do którego mają być wysyłane dane.
Zwraca
Zadanie asynchroniczne, które kończy się liczbą wysłanych bajtów.
Wyjątki
remoteEP
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Dotyczy
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do określonego hosta zdalnego.
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)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Bufor danych do wysłania.
- remoteEP
- EndPoint
Host zdalny, do którego mają być wysyłane dane.
- 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
remoteEP
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do określonego hosta zdalnego.
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)
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.
- remoteEP
- EndPoint
Host zdalny, do którego mają być wysyłane dane.
- 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
remoteEP
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .
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)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Bufor danych do wysłania.
- socketFlags
- SocketFlags
Bitowa kombinacja SocketFlags wartości, które będą używane podczas wysyłania danych.
- socketAddress
- SocketAddress
Obiekt SocketAddress reprezentujący miejsce docelowe 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
socketAddress
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla