Sobes.tech
Junior

Socket деген эмне?

sobes.tech AI

AIден жооп

Сокет (socket) — бул программалык интерфейс (API) тармактык өз ара аракеттенүү үчүн. Ал тармактык протоколдор менен иштөө үчүн абстракцияны камсыз кылат, мисалы, TCP жана UDP, программаларга тармак аркылуу маалыматтарды жөнөтүүгө жана кабыл алууга мүмкүндүк берет.

Ал маалымат алмашуу үчүн чекене чекитти түзөт. Мисалы, веб-сервер сокеттер аркылуу браузерлерден суроолорду кабыл алса, кардарлык тиркеме серверге маалыматтарды жиберет.

Сокеттер негизинен эки түргө бөлүнөт:

  • Токуу сокеттер (Stream sockets, SOCK_STREAM): TCP протоколун колдонуп, ишенимдүү, тартиптүү маалымат жеткирүүнү камсыз кылат. HTTP же FTP сыяктуу жеткирүүнү кепилдеген колдонмолор үчүн ылайыктуу.
  • Дагырам сокеттер (Datagram sockets, SOCK_DGRAM): UDP протоколун колдонуп, жеткирүүнү жана пакеттердин тартибин кепилдебейт. Жылдамдык маанилүү болгон учурларда колдонулат, мисалы, онлайн-оюндар же потоктук видеодо.

Тармактык колдонмодо сокеттер менен иштөө негизги этаптары (TCP үчүн мисал):

  1. Сокет түзүү: socket() функциясын чакырып, сокет дескрипторун алуу.
  2. Байланыш (Bind): Сокетти белгилүү IP-дарекке жана портко байлоо (сервер сокети үчүн).
  3. Тууралуулук (Listen): Сервер сокетин кирүүчү байланыштарды күтүүгө өткөрүү.
  4. Кабыл алуу (Accept): Клиенттен кирүүчү байланышты кабыл алуу, ошол байланыш үчүн жаңы сокет түзүү.
  5. Байланыш орнотуу (Connect): Клиенттин серверге IP-дарек жана порт аркылуу туташуу (кардарлык сокет үчүн).
  6. Жөнөтүү/Алып салуу (Send/Receive): Орнотулган байланыш аркылуу маалымат алмашуу.
  7. Жабуу (Close): Иш аяктагандан кийин сокетти жабуу.

Python тилинде TCP-сокет түзүүнүн мисалы:

import socket

# TCP/IP сокет түзүү
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Кийинки операциялар: bind(), listen(), accept() сервер үчүн
# же connect() кардар үчүн, send(), recv(), close()