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):
- Socket yaratish:
socket()chaqiruvi orqali socket descriptor olish. - Bind: Socketni ma’lum IP-manzil va portga bog‘lash (server socket uchun).
- Listening: Server socketni kiruvchi ulanishlarni kutishga tayyorlash.
- Accept: Kiruvchi ulanishni qabul qilish va yangi socket yaratish.
- Ulanish (Connect): Mijoz IP va port orqali serverga ulanadi.
- Yuborish/Qabul qilish (Send/Receive): Ulangan ulanish orqali ma’lumot almashish.
- 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()