Udostępnij za pośrednictwem


Socket.BeginConnect Metoda

Definicja

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego.

Przeciążenia

BeginConnect(EndPoint, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określony przez IPAddress numer portu i .

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez tablicę IPAddress i numer portu.

BeginConnect(String, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez nazwę hosta i numer portu.

BeginConnect(EndPoint, AsyncCallback, Object)

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

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego.

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

Parametry

remoteEP
EndPoint

Element EndPoint reprezentujący hosta zdalnego.

callback
AsyncCallback

Delegat AsyncCallback .

state
Object

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

Zwraca

Element IAsyncResult , który odwołuje się do połączenia asynchronicznego.

Wyjątki

remoteEP to null.

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

Została zamknięta Socket .

Obiekt wywołujący wyższy w stosie wywołań nie ma uprawnień do żądanej operacji.

Element Socket został umieszczony w stanie nasłuchiwania przez wywołanie Listen(Int32)metody lub operacja asynchroniczna jest już w toku.

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. Wynikowa operacja akceptowania jest reprezentowana przez zwróconą IAsyncResult operację, mimo że może zostać ukończona synchronicznie. 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

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

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

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określony przez numer IPAddress portu i .

public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

address
IPAddress

Host IPAddress zdalny.

port
Int32

Numer portu hosta zdalnego.

requestCallback
AsyncCallback

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

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji łączenia. Ten obiekt jest przekazywany do delegata po zakończeniu requestCallback operacji.

Zwraca

Obiekt IAsyncResult , który odwołuje się do połączenia asynchronicznego.

Wyjątki

address to null.

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

Została zamknięta Socket .

Nie Socket znajduje się w rodzinie gniazd.

Numer portu jest nieprawidłowy.

Długość address to zero.

Element Socket został umieszczony w stanie nasłuchiwania przez wywołanie Listen(Int32)metody lub operacja asynchroniczna jest już w toku.

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 .

Jeśli używasz protokołu zorientowanego na połączenie, BeginConnect metoda uruchamia asynchroniczne żądanie połączenia z obiektem endpoit określonym przez remoteEP parametr . Jeśli używasz protokołu bez połączenia, BeginConnect ustanawia domyślny host zdalny.

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback polecenie BeginConnect , aby otrzymywać powiadomienia o zakończeniu operacji łączenia. 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 BeginConnect. 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 BeginConnect metody.

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

Jeśli używasz protokołu bez połączenia, takiego jak UDP, nie musisz wywoływać przed BeginConnect wysłaniem i odebraniem danych. Możesz użyć polecenia BeginSendTo i BeginReceiveFrom nawiązać komunikację z hostem zdalnym. Jeśli wywołasz metodę BeginConnect, wszystkie datagramy, które docierają z adresu innego niż określona wartość domyślna, zostaną odrzucone. Jeśli chcesz ustawić domyślnego hosta zdalnego na adres emisji, musisz najpierw wywołać SetSocketOption i ustawić opcję Emisja na true. Jeśli nie możesz, BeginConnect zgłosi błąd SocketException.

Jeśli używasz protokołu zorientowanego na połączenie i nie wywołujesz przed wywołaniem BindBeginConnectpołączenia, podstawowy dostawca usług przypisze najbardziej odpowiedni adres sieci lokalnej i numer portu. Jeśli używasz protokołu bez połączenia, dostawca usług nie przypisze lokalnego adresu sieciowego i numeru portu do momentu wywołania BeginSend metody lub ReceiveFrom . Jeśli chcesz zmienić domyślny host zdalny, wywołaj BeginConnect metodę ponownie przy użyciu żądanego punktu końcowego.

Aby anulować oczekujące wywołanie metody BeginConnect , zamknij polecenie Socket. Close Gdy metoda jest wywoływana, gdy trwa operacja asynchroniczna, wywołanie zwrotne dostarczone do BeginConnect metody jest wywoływane. Kolejne wywołanie EndConnect 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

Jeśli to gniazdo zostało wcześniej rozłączone, należy wywołać wątek, BeginConnect który nie zostanie zakończony, dopóki operacja nie zostanie ukończona. Jest to ograniczenie podstawowego dostawcy.

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

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

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

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez tablicę IPAddress i numer portu.

public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

addresses
IPAddress[]

Co najmniej jeden IPAddressobiekt , wyznaczając hosta zdalnego.

port
Int32

Numer portu hosta zdalnego.

requestCallback
AsyncCallback

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

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji łączenia. Ten obiekt jest przekazywany do delegata requestCallback po zakończeniu operacji.

Zwraca

Obiekt IAsyncResult , który odwołuje się do połączeń asynchronicznych.

Wyjątki

addresses to null.

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

Element Socket został zamknięty.

Ta metoda jest prawidłowa w przypadku gniazd, które używają InterNetwork polecenia lub InterNetworkV6.

Numer portu jest nieprawidłowy.

Długość address to zero.

Element Socket został umieszczony w stanie nasłuchiwania przez wywołanie Listen(Int32)metody lub operacja asynchroniczna jest już w toku.

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 .

Jeśli używasz protokołu zorientowanego na połączenie, BeginConnect metoda uruchamia asynchroniczne żądanie połączenia z obiektem remoteEP endpoit określonym przez parametr . Jeśli używasz protokołu bez połączenia, BeginConnect ustanawia domyślny host zdalny.

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback element , aby BeginConnect otrzymywać powiadomienia o zakończeniu operacji łączenia. 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 BeginConnect. 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 BeginConnect metody .

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

Jeśli używasz protokołu bez połączenia, takiego jak UDP, nie musisz wywoływać BeginConnect przed wysłaniem i odebraniem danych. Można używać poleceń BeginSendTo i BeginReceiveFrom do komunikowania się z hostem zdalnym. Jeśli wywołasz BeginConnectmetodę , wszelkie datagramy, które docierają z adresu innego niż określona wartość domyślna, zostaną odrzucone. Jeśli chcesz ustawić domyślnego hosta zdalnego na adres emisji, musisz najpierw wywołać SetSocketOption i ustawić emisję na true. Jeśli nie możesz, BeginConnect zostanie zgłoszony błąd SocketException.

Jeśli używasz protokołu zorientowanego na połączenie i nie wywołujesz Bind go przed wywołaniem BeginConnectmetody , podstawowy dostawca usług przypisze najbardziej odpowiedni lokalny adres sieciowy i numer portu. Jeśli używasz protokołu bez połączenia, dostawca usług nie przypisze lokalnego adresu sieciowego i numeru portu do momentu wywołania BeginSend metody lub ReceiveFrom . Jeśli chcesz zmienić domyślnego hosta zdalnego, wywołaj metodę BeginConnect ponownie z żądanym punktem końcowym.

Aby anulować oczekujące wywołanie BeginConnect metody , zamknij metodę Socket. Close Gdy metoda jest wywoływana, gdy operacja asynchroniczna jest w toku, wywołanie zwrotne podane do BeginConnect metody jest wywoływane. Kolejne wywołanie EndConnect 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

Jeśli to gniazdo zostało wcześniej odłączone, należy wywołać je w wątku, BeginConnect który nie zostanie zakończony, dopóki operacja nie zostanie zakończona. Jest to ograniczenie dostawcy bazowego.

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

BeginConnect(String, Int32, AsyncCallback, Object)

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

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez nazwę hosta i numer portu.

public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

host
String

Nazwa hosta zdalnego.

port
Int32

Numer portu hosta zdalnego.

requestCallback
AsyncCallback

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

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji łączenia. Ten obiekt jest przekazywany do delegata requestCallback po zakończeniu operacji.

Zwraca

Element IAsyncResult , który odwołuje się do połączenia asynchronicznego.

Wyjątki

host to null.

Element Socket został zamknięty.

Ta metoda jest prawidłowa w przypadku gniazd w InterNetwork rodzinach lub InterNetworkV6 .

Numer portu jest nieprawidłowy.

Element Socket został umieszczony w stanie nasłuchiwania przez wywołanie Listen(Int32)metody lub operacja asynchroniczna jest już w toku.

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 .

Jeśli używasz protokołu zorientowanego na połączenie, BeginConnect metoda uruchamia asynchroniczne żądanie połączenia z obiektem remoteEP endpoit określonym przez parametr . Jeśli używasz protokołu bez połączenia, BeginConnect ustanawia domyślny host zdalny.

Możesz przekazać wywołanie zwrotne implementujące AsyncCallback element , aby BeginConnect otrzymywać powiadomienia o zakończeniu operacji łączenia. 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 BeginConnect. 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 BeginConnect metody .

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

Jeśli używasz protokołu bez połączenia, takiego jak UDP, nie musisz wywoływać BeginConnect przed wysłaniem i odebraniem danych. Można używać poleceń BeginSendTo i BeginReceiveFrom do komunikowania się z hostem zdalnym. Jeśli wywołasz BeginConnectmetodę , wszelkie datagramy, które docierają z adresu innego niż określona wartość domyślna, zostaną odrzucone. Jeśli chcesz ustawić domyślnego hosta zdalnego na adres emisji, musisz najpierw wywołać SetSocketOption i ustawić emisję na true. Jeśli nie możesz, BeginConnect zostanie zgłoszony błąd SocketException.

Jeśli używasz protokołu zorientowanego na połączenie i nie wywołujesz Bind go przed wywołaniem BeginConnectmetody , podstawowy dostawca usług przypisze najbardziej odpowiedni lokalny adres sieciowy i numer portu. Jeśli używasz protokołu bez połączenia, dostawca usług nie przypisze lokalnego adresu sieciowego i numeru portu do momentu wywołania BeginSend metody lub ReceiveFrom . Jeśli chcesz zmienić domyślnego hosta zdalnego, wywołaj metodę BeginConnect ponownie z żądanym punktem końcowym.

Aby anulować oczekujące wywołanie BeginConnect metody , zamknij metodę Socket. Close Gdy metoda jest wywoływana, gdy operacja asynchroniczna jest w toku, wywołanie zwrotne podane do BeginConnect metody jest wywoływane. Kolejne wywołanie EndConnect 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

Jeśli to gniazdo zostało wcześniej rozłączone, należy wywołać wątek, BeginConnect który nie zostanie zakończony, dopóki operacja nie zostanie ukończona. Jest to ograniczenie podstawowego dostawcy.

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