Sobes.tech
Junior

Kas ir sockets?

sobes.tech AI

Atbilde no AI

Sockets ir programmēšanas interfeiss (API) tīkla savienojumiem starp procesiem. Tas nodrošina abstrakciju darbam ar tīkla protokoliem, piemēram, TCP un UDP, ļaujot programmām sūtīt un saņemt datus pa tīklu.

Tas ir datu apmaiņas punkts. Piemēram, tīmekļa serveris ar socket palīdzību var pieņemt pieprasījumus no pārlūkprogrammām, bet klienta lietotne var sūtīt datus serverim.

Sockets galvenokārt ir divu veidu:

  • Straumēšanas (Stream sockets, SOCK_STREAM): Izmanto TCP protokolu, nodrošina uzticamu, secīgu datu piegādi. Piemērots lietojumiem, kur nepieciešama garantija par piegādi, piemēram, HTTP vai FTP.
  • Datagramu (Datagram sockets, SOCK_DGRAM): Izmanto UDP protokolu, nesniedz garantiju par piegādi un paketes secību. Lietojams tur, kur svarīga ir ātrums, piemēram, tiešsaistes spēlēs vai straumēšanas video.

Galvenie soļi darbā ar socketiem tīkla lietojumprogrammā (piemērs TCP):

  1. Socket izveide: socket() funkcijas izsaukšana, lai iegūtu socket deskriptoru.
  2. Saistīšana (Bind): Socket piesaistīšana noteiktai IP adresei un portam (servera socketiem).
  3. Uztveršana (Listen): Servera socket pārvēršana gaidīšanas režīmā ienākošajiem savienojumiem.
  4. Pieņemšana (Accept): Ienākoša savienojuma pieņemšana no klienta, jauna socket izveide šim savienojumam.
  5. Savienojuma izveide (Connect): Klienta pieslēgšanās serverim, izmantojot IP adresi un portu.
  6. Sūtīšana/saņemšana (Send/Receive): Datu apmaiņa caur uzstādīto savienojumu.
  7. Aizvēršana (Close): Socket aizvēršana pēc darba pabeigšanas.

Python piemērs TCP socket izveidei:

import socket

# TCP/IP socket izveide
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Turpmākās operācijas: bind(), listen(), accept() serverim
# vai connect() klientam, send(), recv(), close()