Sobes.tech
Middle

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:

  1. Soketlar (Sockets) — tarmoq yoki lokalda ma'lumot almashish uchun past darajali usul. Mijoz-server o'zaro ta'sirini amalga oshirish imkonini beradi.

  2. 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.

  3. Xabar navbatlari (Message Queues) — RabbitMQ, Kafka yoki Redis Pub/Sub kabi tizimlar, dasturlar o'rtasida asinxron xabar almashish imkonini beradi.

  4. Umumiy fayllar yoki ma'lumotlar bazalari — dasturlar umumiy fayl yoki ma'lumotlar bazasiga ma'lumotlarni o'qish va yozishlari mumkin.

  5. 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.