Ikki Python ilovasi o'rtasida qanday ma'lumot uzatish mumkin?
sobes.tech AI
AIdan javob
Python dasturlari o'rtasida ma'lumot uzatish uchun bir nechta yondashuvlar mavjud, tanlov tezlik, ma'lumot hajmi va arxitekturaga bog'liq:
-
Soketlar (Sockets) — tarmoq yoki lokalda ma'lumot almashish uchun past darajali usul. Mijoz-server o'zaro ta'sirini amalga oshirish imkonini beradi.
-
HTTP API — eng keng tarqalgan yechimlardan biri. Bir dastur veb-serverni ishga tushiradi (masalan, Flask yoki FastAPI bilan), boshqasi esa ma'lumotlar bilan HTTP so'rovlarini yuboradi.
-
Xabar navbatlari (Message Queues) — RabbitMQ, Kafka yoki Redis Pub/Sub kabi tizimlar, dasturlar o'rtasida asinxron xabar almashish imkonini beradi.
-
Umumiy fayllar yoki ma'lumotlar bazalari — dasturlar umumiy fayl yoki ma'lumotlar bazasiga ma'lumotlarni o'qish va yozishlari mumkin.
-
multiprocessing moduli va Pipe/Queue — agar dasturlar bir xil mashinada ishlayotgan bo'lsa va Python jarayonlari bo'lsa, ular o'rtasida o'zaro ta'sir uchun ichki vositalardan foydalanish mumkin.
Oddiy soket orqali almashish misoli:
# Server
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 5000))
server.listen(1)
conn, addr = server.accept()
data = conn.recv(1024)
print('Qabul qilindi:', data.decode())
conn.sendall(b'Qabul qilindi')
conn.close()
# Mijoz
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('localhost', 5000))
client.sendall(b'Salom mijozdan')
response = client.recv(1024)
print('Server javobi:', response.decode())
client.close()
Usul tanlovi aniq vazifalarga bog'liq: bir mashinada oddiy almashish uchun soket yoki navbat yetarli bo'lishi mumkin; tarqatilgan tizimlar uchun — HTTP API yoki xabar brokerlari mos keladi.