Udostępnij za pośrednictwem


Socket.BeginReceive Metoda

Definicja

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

Przeciążenia

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Rozpoczyna asynchronicznie odbierać dane z połączonego Socketobiektu .

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Rozpoczyna asynchronicznie odbierać dane z połączonego Socketobiektu .

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Rozpoczyna asynchronicznie odbierać dane z połączonego Socketobiektu .

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Rozpoczyna asynchronicznie odbierać dane z połączonego Socketobiektu .

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Rozpoczyna asynchronicznie odbierać dane z połączonego Socketobiektu .

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

buffer
Byte[]

Tablica typu Byte , która jest lokalizacją przechowywania odebranych danych.

offset
Int32

Lokalizacja do buffer przechowywania odebranych danych.

size
Int32

Liczba bajtów do odebrania.

socketFlags
SocketFlags

Bitowa kombinacja SocketFlags wartości.

errorCode
SocketError

SocketError Obiekt, który przechowuje błąd gniazda.

callback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji odbierania. Ten obiekt jest przekazywany do delegata EndReceive(IAsyncResult) po zakończeniu operacji.

Zwraca

Element IAsyncResult , który odwołuje się do odczytu asynchronicznego.

Wyjątki

buffer to null.

.NET Framework i .NET 5 i starszych tylko: wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Socket został zamknięty.

offset wartość jest mniejsza niż 0.

-lub-

offsetjest większa niż długość .buffer

-lub-

size wartość jest mniejsza niż 0.

-lub-

size jest większa niż długość buffer odmętą wartości parametru offset .

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do tworzenia nowych rozwiązań. Zamiast tego należy użyć odpowiedników opartych na Taskparametrach .

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback element , aby BeginReceive otrzymywać powiadomienia o zakończeniu operacji. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne zostanie wykonane w tekście podczas wywołania metody BeginReceive. W takim przypadku właściwość zwrócona IAsyncResult zostanie ustawiona na wartość , aby wskazaćtrue, CompletedSynchronously że metoda została ukończona synchronicznie. AsyncState Użyj właściwości , IAsyncResult aby uzyskać obiekt stanu przekazany do BeginReceive metody .

Operacja asynchroniczna musi zostać ukończona BeginReceive przez wywołanie EndReceive metody . Zazwyczaj metoda jest wywoływana przez delegata AsyncCallback . EndReceive Zablokuje wątek wywołujący do momentu ukończenia operacji.

Zamknij element , Socket aby anulować oczekujący BeginReceiveelement . Close Gdy metoda jest wywoływana, gdy operacja asynchroniczna jest w toku, wywołanie zwrotne podane do BeginReceive metody jest wywoływane. Kolejne wywołanie EndReceive metody spowoduje zgłoszenie (przed platformą ObjectDisposedExceptionSocketException .NET 7) lub (na platformie .NET 7+), aby wskazać, że operacja została anulowana.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu.

Uwaga

Wszystkie operacje we/wy inicjowane przez dany wątek są anulowane po zakończeniu tego wątku. Oczekująca operacja asynchroniczna może zakończyć się niepowodzeniem, jeśli wątek zakończy się przed zakończeniem operacji.

Uwaga

state jest wystąpieniem klasy zdefiniowanej przez użytkownika.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Uwaga

Kontekst wykonywania (kontekst zabezpieczeń, personifikowany użytkownik i kontekst wywołujący) jest buforowany dla metod asynchronicznych Socket . Po pierwszym użyciu określonego kontekstu (konkretnej metody asynchronicznej Socket , określonego wystąpienia i określonego Socket wywołania zwrotnego), kolejne zastosowania tego kontekstu zobaczą poprawę wydajności.

Zobacz też

Dotyczy

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

buffer
Byte[]

Tablica typu Byte , która jest lokalizacją przechowywania odebranych danych.

offset
Int32

Pozycja oparta na zerze w parametrze buffer , w którym mają być przechowywane odebrane dane.

size
Int32

Liczba bajtów do odebrania.

socketFlags
SocketFlags

Bitowa kombinacja SocketFlags wartości.

callback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji odbierania. Ten obiekt jest przekazywany do delegata EndReceive(IAsyncResult) po zakończeniu operacji.

Zwraca

Element IAsyncResult odwołujący się do odczytu asynchronicznego.

Wyjątki

buffer to null.

.NET Framework i .NET 5 i starszych tylko: wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Socket został zamknięty.

offset wartość jest mniejsza niż 0.

-lub-

offsetjest większa niż długość .buffer

-lub-

size wartość jest mniejsza niż 0.

-lub-

size jest większa niż długość buffer odmętą wartości parametru offset .

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do tworzenia nowych rozwiązań. Zamiast tego należy użyć odpowiedników opartych na Taskparametrach .

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback element , aby BeginReceive otrzymywać powiadomienia o zakończeniu operacji. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne zostanie wykonane w tekście podczas wywołania metody BeginReceive. W takim przypadku właściwość zwrócona IAsyncResult zostanie ustawiona na wartość , aby wskazaćtrue, CompletedSynchronously że metoda została ukończona synchronicznie. AsyncState Użyj właściwości , IAsyncResult aby uzyskać obiekt stanu przekazany do BeginReceive metody .

Operacja asynchroniczna musi zostać ukończona BeginReceive przez wywołanie EndReceive metody . Zazwyczaj metoda jest wywoływana przez delegata AsyncCallback . EndReceive Zablokuje wątek wywołujący do momentu ukończenia operacji.

Zamknij element , Socket aby anulować oczekujący BeginReceiveelement . Close Gdy metoda jest wywoływana, gdy operacja asynchroniczna jest w toku, wywołanie zwrotne podane do BeginReceive metody jest wywoływane. Kolejne wywołanie EndReceive metody spowoduje zgłoszenie (przed platformą ObjectDisposedExceptionSocketException .NET 7) lub (na platformie .NET 7+), aby wskazać, że operacja została anulowana.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu.

Uwaga

Wszystkie operacje we/wy inicjowane przez dany wątek są anulowane po zakończeniu tego wątku. Oczekująca operacja asynchroniczna może zakończyć się niepowodzeniem, jeśli wątek zakończy się przed zakończeniem operacji.

Uwaga

state jest wystąpieniem klasy zdefiniowanej przez użytkownika.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Uwaga

Kontekst wykonywania (kontekst zabezpieczeń, personifikowany użytkownik i kontekst wywołujący) jest buforowany dla metod asynchronicznych Socket . Po pierwszym użyciu określonego kontekstu (konkretnej metody asynchronicznej Socket , określonego Socket wystąpienia i określonego wywołania zwrotnego), kolejne zastosowania tego kontekstu zobaczą poprawę wydajności.

Zobacz też

Dotyczy

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

buffers
IList<ArraySegment<Byte>>

Tablica typu Byte , która jest lokalizacją przechowywania odebranych danych.

socketFlags
SocketFlags

Bitowa kombinacja SocketFlags wartości.

callback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji odbierania. Ten obiekt jest przekazywany do delegata po zakończeniu EndReceive(IAsyncResult) operacji.

Zwraca

Element IAsyncResult odwołujący się do odczytu asynchronicznego.

Wyjątki

buffer to null.

.NET Framework i .NET 5 i starsze tylko: wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Socket została zamknięta.

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do nowego programowania. Zamiast tego należy użyć Taskodpowiedników opartych na protokole .

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback polecenie , BeginReceive aby otrzymywać powiadomienia o zakończeniu operacji. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne zostanie wykonane w tekście podczas wywołania metody BeginReceive. W takim przypadku CompletedSynchronously właściwość zwrócona IAsyncResult zostanie ustawiona na wartość , aby wskazać true , że metoda została ukończona synchronicznie. AsyncState Użyj właściwości obiektu , IAsyncResult aby uzyskać obiekt stanu przekazany do BeginReceive metody.

Operacja asynchroniczna BeginReceive musi zostać ukończona przez wywołanie EndReceive metody . Zazwyczaj metoda jest wywoływana przez delegata AsyncCallback . EndReceive zablokuje wątek wywołujący do momentu ukończenia operacji.

Zamknij element , Socket aby anulować oczekujące BeginReceivepolecenie . Close Gdy metoda jest wywoływana, gdy trwa operacja asynchroniczna, wywołanie zwrotne dostarczone do BeginReceive metody jest wywoływane. Kolejne wywołanie EndReceive metody spowoduje zgłoszenie (przed platformą ObjectDisposedException .NET 7) lub SocketException (na platformie .NET 7+), aby wskazać, że operacja została anulowana.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu.

Uwaga

Wszystkie operacje we/wy inicjowane przez dany wątek są anulowane po zakończeniu tego wątku. Oczekująca operacja asynchroniczna może zakończyć się niepowodzeniem, jeśli wątek zakończy się przed zakończeniem operacji.

Uwaga

state jest wystąpieniem klasy zdefiniowanej przez użytkownika.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Uwaga

Kontekst wykonywania (kontekst zabezpieczeń, personifikowany użytkownik i kontekst wywołujący) jest buforowany dla metod asynchronicznych Socket . Po pierwszym użyciu określonego kontekstu (konkretnej metody asynchronicznej Socket , określonego Socket wystąpienia i określonego wywołania zwrotnego), kolejne zastosowania tego kontekstu zobaczą poprawę wydajności.

Zobacz też

Dotyczy

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

buffers
IList<ArraySegment<Byte>>

Tablica typu Byte , która jest lokalizacją przechowywania odebranych danych.

socketFlags
SocketFlags

Bitowa kombinacja SocketFlags wartości.

errorCode
SocketError

SocketError Obiekt, który przechowuje błąd gniazda.

callback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji odbierania. Ten obiekt jest przekazywany do delegata po zakończeniu EndReceive(IAsyncResult) operacji.

Zwraca

Element IAsyncResult odwołujący się do odczytu asynchronicznego.

Wyjątki

buffer to null.

.NET Framework i .NET 5 i starsze tylko: wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Socket została zamknięta.

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do nowego programowania. Zamiast tego należy użyć Taskodpowiedników opartych na protokole .

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback polecenie , BeginReceive aby otrzymywać powiadomienia o zakończeniu operacji. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne zostanie wykonane w tekście podczas wywołania metody BeginReceive. W takim przypadku CompletedSynchronously właściwość zwrócona IAsyncResult zostanie ustawiona na wartość , aby wskazać true , że metoda została ukończona synchronicznie. AsyncState Użyj właściwości obiektu , IAsyncResult aby uzyskać obiekt stanu przekazany do BeginReceive metody.

Operacja asynchroniczna BeginReceive musi zostać ukończona przez wywołanie EndReceive metody . Zazwyczaj metoda jest wywoływana przez delegata AsyncCallback . EndReceive zablokuje wątek wywołujący do momentu ukończenia operacji.

Zamknij element , Socket aby anulować oczekujące BeginReceivepolecenie . Close Gdy metoda jest wywoływana, gdy trwa operacja asynchroniczna, wywołanie zwrotne dostarczone do BeginReceive metody jest wywoływane. Kolejne wywołanie EndReceive metody spowoduje zgłoszenie (przed platformą ObjectDisposedException .NET 7) lub SocketException (na platformie .NET 7+), aby wskazać, że operacja została anulowana.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu.

Uwaga

Wszystkie operacje we/wy inicjowane przez dany wątek są anulowane po zakończeniu tego wątku. Oczekująca operacja asynchroniczna może zakończyć się niepowodzeniem, jeśli wątek zakończy się przed zakończeniem operacji.

Uwaga

state jest wystąpieniem klasy zdefiniowanej przez użytkownika.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Uwaga

Kontekst wykonywania (kontekst zabezpieczeń, personifikowany użytkownik i kontekst wywołujący) jest buforowany dla metod asynchronicznych Socket . Po pierwszym użyciu określonego kontekstu (konkretnej metody asynchronicznej Socket , określonego Socket wystąpienia i określonego wywołania zwrotnego), kolejne zastosowania tego kontekstu zobaczą poprawę wydajności.

Zobacz też

Dotyczy