Udostępnij za pośrednictwem


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 .