Доброе утро. Недавно я начал изучать программирование сети и Python с использованием Raspberry Pi (эмуляторная программа для Linux), и у меня возникла небольшая проблема. Моя домашняя работа - сделать сервер и трех клиентов, где эти клиенты должны получать информацию о температуре от Raspberry через сервер (температура сервера отправляет) одновременно (важно!), Но, как я вижу, эти клиенты получают информацию, но похоже, что 1 клиент получает иотдохнуть, пока он не получит температуру .... и я действительно не знаю, какие изменения я должен внести в мой код: (
serwer.py
from sense_emu import SenseHat
from time import sleep
import socket
sense = SenseHat()
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
while 1:
temp = sense.temp
tempe = str(temp)
message = tempe.encode('utf-8')
sock.sendto(message, (UDP_IP, UDP_PORT))
sleep(1)
client.py
from time import sleep
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((UDP_IP, UDP_PORT))
while 1:
message, addr = sock.recvfrom(1024)
mes = str(message)
print("received message:"+mes)
sock.close()
sleep(2)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((UDP_IP, UDP_PORT))
Я действительно думал, что он должен работать через bind socket на каждом клиенте, но, к сожалению, нет.