Skip to main content

Programowanie gniazd dla sieci komputerowych

Jak żyć lepiej? Jacek Walkiewicz, cz.1, 20m2 talk-show, odc. 309 (Kwiecień 2025)

Jak żyć lepiej? Jacek Walkiewicz, cz.1, 20m2 talk-show, odc. 309 (Kwiecień 2025)
Anonim

Programowanie gniazd jest podstawową technologią odpowiedzialną za komunikację w sieciach TCP / IP. Gniazdo to jeden punkt końcowy łącza dwukierunkowego między dwoma programami działającymi w sieci. Gniazdo zapewnia dwukierunkowy punkt końcowy komunikacji do wysyłania i odbierania danych z innym gniazdem. Połączenia z gniazdem normalnie są uruchamiane między dwoma różnymi komputerami w sieci lokalnej (LAN) lub przez Internet, ale mogą być również używane do komunikacji międzyprocesowej na pojedynczym komputerze.

Gniazda i adresy

Punkty końcowe gniazd w sieciach TCP / IP mają unikalny adres będący kombinacją adresu IP i numeru portu TCP / IP. Ponieważ gniazdo jest przypisane do określonego numeru portu, warstwa TCP może zidentyfikować aplikację, która powinna otrzymywać dane do niej wysłane. Podczas tworzenia nowego gniazda biblioteka gniazd automatycznie generuje unikalny numer portu na tym urządzeniu. Programista może również określić numery portów w określonych sytuacjach.

Jak działają gniazda sieciowe

Zazwyczaj serwer działa na jednym komputerze i ma gniazdo, które jest przypisane do określonego portu. Serwer czeka na inny komputer, aby utworzyć żądanie połączenia. Komputer kliencki zna nazwę hosta komputera serwera i numer portu, na którym nasłuchuje serwer. Komputer kliencki identyfikuje się i - jeśli wszystko idzie dobrze - serwer zezwala na łączenie się komputera klienckiego.

Biblioteki gniazd

Zamiast kodować bezpośrednio do interfejsów API niskiego poziomu, programiści używają zazwyczaj bibliotek gniazd. Dwie powszechnie używane biblioteki gniazd to Berkeley Sockets dla systemów Linux / Unix i WinSock dla systemów Windows.

Biblioteka gniazd udostępnia zestaw funkcji API podobnych do tych, których używają programiści do pracy z plikami, takich jak open (), read (), write () i close ().