Udostępnij za pośrednictwem


Socket.BeginAccept Metoda

Definicja

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego.

Przeciążenia

BeginAccept(AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego.

BeginAccept(Int32, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego i odebrania pierwszego bloku danych wysyłanych przez aplikację kliencką.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego z określonego gniazda i odbiera pierwszy blok danych wysyłanych przez aplikację kliencką.

BeginAccept(AsyncCallback, Object)

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

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego.

public:
 IAsyncResult ^ BeginAccept(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (AsyncCallback callback, object state);
member this.BeginAccept : AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

callback
AsyncCallback

Delegat AsyncCallback .

state
Object

Obiekt zawierający informacje o stanie dla tego żądania.

Zwraca

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

Wyjątki

Socket Obiekt został zamknięty.

Gniazdo akceptujące nie nasłuchuje połączeń. Musisz wywołać metodę Bind(EndPoint) i Listen(Int32) przed wywołaniem metody BeginAccept(AsyncCallback, Object).

-lub-

Zaakceptowane gniazdo jest powiązane.

receiveSize wartość jest mniejsza niż 0.

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

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 .

Protokoły zorientowane na połączenia mogą użyć BeginAccept metody , aby rozpocząć akceptowanie prób połączenia przychodzącego. Przed wywołaniem metody należy wywołać metodę BeginAcceptListen , aby nasłuchiwać żądań połączeń przychodzących i kolejkować je.

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback polecenie BeginAccept , aby otrzymywać powiadomienia o zakończeniu operacji akceptowania. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne może zostać wykonane w tekście podczas wywołania metody BeginAccept. 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 BeginAccept metody.

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

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

Uwaga

Możesz użyć RemoteEndPoint właściwości zwróconej Socket , aby zidentyfikować adres sieciowy hosta zdalnego i numer portu.

Uwaga

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

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

BeginAccept(Int32, AsyncCallback, Object)

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

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego i odebrania pierwszego bloku danych wysyłanych przez aplikację kliencką.

public:
 IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

receiveSize
Int32

Liczba bajtów do zaakceptowania przez nadawcę.

callback
AsyncCallback

Delegat AsyncCallback .

state
Object

Obiekt zawierający informacje o stanie dla tego żądania.

Zwraca

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

Wyjątki

Socket Obiekt został zamknięty.

Gniazdo akceptujące nie nasłuchuje połączeń. Musisz wywołać metodę Bind(EndPoint) i Listen(Int32) przed wywołaniem metody BeginAccept(AsyncCallback, Object).

-lub-

Zaakceptowane gniazdo jest powiązane.

receiveSize wartość jest mniejsza niż 0.

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

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 .

Protokoły zorientowane na połączenia mogą użyć BeginAccept metody , aby rozpocząć akceptowanie prób połączenia przychodzącego. Przed wywołaniem metody należy wywołać metodę BeginAcceptListen , aby nasłuchiwać żądań połączeń przychodzących i kolejkować je.

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback polecenie BeginAccept , aby otrzymywać powiadomienia o zakończeniu operacji akceptowania. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne może zostać wykonane w tekście podczas wywołania metody BeginAccept. 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 BeginAccept metody.

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

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

Uwaga

Możesz użyć RemoteEndPoint właściwości zwróconej Socket , aby zidentyfikować adres sieciowy hosta zdalnego i numer portu.

Uwaga

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

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

BeginAccept(Socket, Int32, AsyncCallback, Object)

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

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego z określonego gniazda i odbiera pierwszy blok danych wysyłanych przez aplikację kliencką.

public:
 IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

acceptSocket
Socket

Zaakceptowany Socket obiekt. Ta wartość może być następująca null: .

receiveSize
Int32

Maksymalna liczba bajtów do odebrania.

callback
AsyncCallback

Delegat AsyncCallback .

state
Object

Obiekt zawierający informacje o stanie dla tego żądania.

Zwraca

Obiekt IAsyncResult , który odwołuje się do tworzenia obiektu asynchronicznego Socket .

Wyjątki

Socket Obiekt został zamknięty.

Gniazdo akceptujące nie nasłuchuje połączeń. Musisz wywołać metodę Bind(EndPoint) i Listen(Int32) przed wywołaniem metody BeginAccept(AsyncCallback, Object).

-lub-

Zaakceptowane gniazdo jest powiązane.

receiveSize wartość jest mniejsza niż 0.

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

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 .

Protokoły zorientowane na połączenia mogą użyć BeginAccept metody , aby rozpocząć akceptowanie prób połączenia przychodzącego. Wynikowa operacja akceptowania jest reprezentowana przez zwrócony IAsyncResult , mimo że może zostać ukończona synchronicznie. Przed wywołaniem metody należy wywołać metodę BeginAcceptListen , aby nasłuchiwać żądań przychodzących połączeń i kolejkować je.

Możesz przekazać wywołanie zwrotne, które implementuje AsyncCallback element , BeginAccept aby otrzymywać powiadomienia o zakończeniu operacji akceptowania. Należy pamiętać, że jeśli bazowy stos sieciowy ukończy operację synchronicznie, wywołanie zwrotne może zostać wykonane w tekście podczas wywołania metody BeginAccept. 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 BeginAccept metody .

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

Aby anulować oczekujące wywołanie BeginAccept metody , zamknij metodę Socket. Close Gdy metoda jest wywoływana, gdy operacja asynchroniczna jest w toku, wywołanie zwrotne podane do BeginAccept metody jest wywoływane. Kolejne wywołanie EndAccept metody spowoduje zgłoszenie (przed platformą ObjectDisposedExceptionSocketException .NET 7) lub (na platformie .NET 7+), aby wskazać, że operacja została anulowana.

Uwaga

Możesz użyć RemoteEndPoint właściwości zwróconej Socket , aby zidentyfikować adres sieciowy i numer portu hosta zdalnego.

Uwaga

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

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