System.Net.Sockets.Socket, klasa
Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.
Klasa Socket udostępnia bogaty zestaw metod i właściwości komunikacji sieciowej. Klasa Socket umożliwia wykonywanie zarówno synchronicznego, jak i asynchronicznego transferu danych przy użyciu dowolnego z protokołów komunikacyjnych wymienionych w wyliczeniem ProtocolType .
Klasa jest zgodna Socket ze wzorcem nazewnictwa platformy .NET dla metod asynchronicznych. Na przykład metoda synchroniczna Receive odpowiada wariantom asynchronicznym ReceiveAsync .
Użyj następujących metod dla trybu operacji synchronicznej:
- Jeśli używasz protokołu zorientowanego na połączenie, takiego jak TCP, serwer może nasłuchiwać połączeń przy użyciu Listen metody . Metoda Accept przetwarza wszystkie przychodzące żądania połączenia i zwraca wartość Socket , której można użyć do komunikowania się danych z hostem zdalnym. Użyj tej zwróconej Socket metody , aby wywołać metodę Send or Receive . Wywołaj metodę Bind przed wywołaniem Listen metody , jeśli chcesz określić lokalny adres IP i numer portu. Użyj numeru portu zero, jeśli chcesz, aby podstawowy dostawca usług przypiszeł ci bezpłatny port. Jeśli chcesz nawiązać połączenie z hostem nasłuchiwania, wywołaj metodę Connect . Aby przekazać dane, wywołaj metodę Send or Receive .
- Jeśli używasz protokołu bez połączenia, takiego jak UDP, nie musisz w ogóle nasłuchiwać połączeń. Wywołaj metodę , ReceiveFrom aby zaakceptować wszystkie przychodzące datagramy. SendTo Użyj metody , aby wysyłać datagramy do hosta zdalnego.
Aby przetworzyć komunikację asynchronicznie, użyj następujących metod:
- Jeśli używasz protokołu zorientowanego na połączenie, takiego jak TCP, użyj polecenia ConnectAsync , aby nawiązać połączenie z hostem nasłuchiwania. Użyj SendAsync polecenia lub ReceiveAsync , aby asynchronicznie komunikować dane. Żądania połączeń przychodzących można przetworzyć przy użyciu polecenia AcceptAsync.
- Jeśli używasz protokołu bez połączenia, takiego jak UDP, możesz użyć SendToAsync do wysyłania datagramów i ReceiveFromAsyncodbierania datagramów.
Jeśli wykonujesz wiele operacji asynchronicznych na gniazdach, niekoniecznie są one wykonywane w kolejności, w której są uruchamiane.
Po zakończeniu wysyłania i odbierania danych użyj Shutdown metody , aby wyłączyć metodę Socket. Po wywołaniu Shutdownmetody wywołaj metodę Close , aby zwolnić wszystkie zasoby skojarzone z elementem Socket.
Klasa Socket umożliwia skonfigurowanie Socket elementu przy użyciu SetSocketOption metody . Pobierz te ustawienia przy użyciu GetSocketOption metody .