Junior
Socket чист?
sobes.tech AI
Ҷавоб аз AI
Socket (socket) — интерфейс API барои муоширати шабакавӣ байни равандҳо. Он абстраксия медиҳад барои кор бо протоколҳои шабакавӣ, монанди TCP ва UDP, ки ба барномаҳо имкон медиҳад, ки маълумотро тавассути шабака фиристода ва қабул кунанд.
Ин нуқтаи охир барои мубодилаи маълумотро намояндагӣ мекунад. Бо ёрии socketҳо, масалан, сервери веб метавонад дархостҳоро аз браузерҳо қабул кунад ва барномаҳои мизоҷ метавонад маълумотро ба сервер фиристад.
Socketҳо асосан ду навъ мебошанд:
- Таъсир (Stream sockets, SOCK_STREAM): Аз протоколи TCP истифода мебаранд, таъмини расонидани боэътимод ва ба тартиб овардашудаи маълумотро мекунанд. Барои барномаҳо, ки талаботи кафолати расонидан доранд, мувофиқанд, масалан, HTTP ё FTP.
- Датаграм (SOCK_DGRAM): Аз протоколи UDP истифода мебаранд, кафолат намедиҳанд, ки маълумот расонида мешавад ё не. Онҳо дар ҷойҳое истифода мешаванд, ки суръат муҳим аст, масалан, дар бозии онлайн ё видеостриминг.
Қадамҳои асосии кор бо socketҳо дар барномаи шабакавӣ (масалан барои TCP):
- Эҷоди socket: Звонок
socket()барои гирифтани дескриптор. - Bind: Связывание socket-ро бо суроғаи IP ва порти муайян дар мошини маҳаллӣ (барои socket-и сервер).
- Гӯш кардан (Listen): Пур кардани socket-и сервер дар режими гӯш барои пайвастҳои воридотӣ.
- Қабул (Accept): Қабул кардани пайвасти воридотӣ аз муштарӣ ва эҷоди socket нав барои он.
- Тамос барқарор кардан (Connect): Муштарӣ бо сервер тавассути IP ва порт пайваст мешавад.
- Фиристодан/Гирифтан (Send/Receive): Алмашин маълумот тавассути пайвасти барқароршуда.
- Баста кардан (Close): Баста кардани socket пас аз анҷоми кор.
Масалан барои эҷоди socket TCP дар Python:
import socket
# Эҷоди socket TCP/IP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Амалиётҳои иловагӣ: bind(), listen(), accept() барои сервер
# ё connect() барои муштарӣ, send(), recv(), close()