Junior
Čo je to socket?
sobes.tech AI
Odpoveď od AI
Soket (socket) je rozhranie API pre sieťovú komunikáciu medzi procesmi. Poskytuje abstrakciu pre prácu s sieťovými protokolmi ako TCP a UDP, umožňujúc programom odosielať a prijímať dáta cez sieť.
Predstavuje koncový bod pre výmenu informácií. Pomocou soketov môže napríklad webový server prijímať požiadavky od prehliadačov a klientska aplikácia môže odosielať dáta na server.
Sokety môžu byť hlavne dva typy:
- Streamové (SOCK_STREAM): Používajú protokol TCP, zabezpečujú spoľahlivé, zoradené doručenie dát. Sú vhodné pre aplikácie, ktoré vyžadujú garanciu doručenia, ako HTTP alebo FTP.
- Datagramové (SOCK_DGRAM): Používajú protokol UDP, nezaručujú doručenie alebo poradie paketov. Používajú sa tam, kde je dôležitá rýchlosť, napríklad v online hrách alebo streamovaní videa.
Hlavné kroky práce so soketmi v sieťovej aplikácii (príklad pre TCP):
- Vytvorenie soketu: Volanie
socket()na získanie deskriptora soketu. - Bind: Priradenie soketu k určitej IP adrese a portu na lokálnom stroji (pre serverový soket).
- Počúvanie (Listen): Nastavenie serverového soketu do režimu počúvania prichádzajúcich spojení.
- Prijatie (Accept): Prijatie prichádzajúceho spojenia od klienta, vytvorenie nového soketu pre toto spojenie.
- Ustanovenie spojenia (Connect): Klient sa pripojí k serveru cez IP a port (pre klientsky soket).
- Odoslanie/Prijatie (Send/Receive): Výmena dát cez naviazané spojenie.
- Zatvorenie (Close): Zatvorenie soketu po ukončení práce.
Príklad vytvorenia TCP soketu v Pythone:
import socket
# Vytvorenie TCP/IP soketu
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Ďalšie operácie: bind(), listen(), accept() pre server
# alebo connect() pre klient, send(), recv(), close()