Sobes.tech
Junior

Socket nima?

sobes.tech AI

AIdan javob

Socket (socket) — bu dasturiy interfeys (API) bo‘lishi bilan tarmoq o‘zaro ta’sir qilish uchun. U TCP va UDP kabi tarmoq protokollari bilan ishlash uchun abstraktsiya taqdim etadi, dasturlarga tarmoq orqali ma’lumot yuborish va qabul qilish imkonini beradi.

U ma’lumot almashish uchun yakuniy nuqtani ifodalaydi. Masalan, veb-server brauzerlar so‘rovlarini qabul qilishi mumkin, va mijoz ilovasi ma’lumotlarni serverga yuborishi mumkin.

Socketlar ikki asosiy turga bo‘linadi:

  • Yog‘ingarchilik (Stream sockets, SOCK_STREAM): TCP protokolini ishlatadi, ishonchli va tartiblangan ma’lumot yetkazib berishni ta’minlaydi. HTTP yoki FTP kabi yetkazib berish garantiyasini talab qiladigan ilovalar uchun mos.
  • Datagram socketlar (SOCK_DGRAM): UDP protokolini ishlatadi, paketlarning yetkazib berilishi va tartibini kafolatlamaydi. Tezlik muhim bo‘lgan joylarda, masalan, onlayn o‘yinlar yoki oqimli videoda qo‘llaniladi.

Tarmoq ilovasida socketlar bilan ishlashning asosiy bosqichlari (TCP uchun misol):

  1. Socket yaratish: socket() chaqiruvi orqali socket descriptor olish.
  2. Bind: Socketni ma’lum IP-manzil va portga bog‘lash (server socket uchun).
  3. Listening: Server socketni kiruvchi ulanishlarni kutishga tayyorlash.
  4. Accept: Kiruvchi ulanishni qabul qilish va yangi socket yaratish.
  5. Ulanish (Connect): Mijoz IP va port orqali serverga ulanadi.
  6. Yuborish/Qabul qilish (Send/Receive): Ulangan ulanish orqali ma’lumot almashish.
  7. Yopish (Close): Ish tugagach socketni yopish.

Python’da TCP socket yaratish misoli:

import socket

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

# Qo‘shimcha amallar: bind(), listen(), accept() server uchun
# yoki connect() mijoz uchun, send(), recv(), close()