Я пытаюсь сделать два сервера прослушивания udp в одном коде Python, код ниже,
import threading
import time
import socket
class udpreceive:
def __init__(self,port,ip):
self.port = port
self.ip = ip
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind((self.ip, self.port))
def startserver(self):
while True:
time.sleep(1)
data, addr = self.sock.recvfrom(1024)
print (data)
server1 = udpreceive(514,"192.168.1.5")
s1 = threading.Thread(target=server1.startserver())
server2 = udpreceive(515,"192.168.1.5")
s2 = threading.Thread(target=server2.startserver())
s2.start()
s1.start()
это код клиента для отправителя udp 1
import socket
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
counter =0
while True:
send_data = "hellow world server1 :- "+ str(counter)
sock.sendto(send_data.encode(), ("192.168.1.5", 514))
print (send_data)
counter +=1
это код клиента для отправителя 2
import socket
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
counter =0
while True:
send_data = "hellow world server2 :- "+ str(counter)
sock.sendto(send_data.encode(), ("192.168.1.5", 514))
print (send_data)
counter +=1
Когда я запускаю код получения, показываются только данные отправителя 1. Запустить только отправителя 2 и начать получать код, но он не показывает отправителя 2, но я начинаю отправителя 1 получить код показать данные отправителя 1.
что я не так делаю? мне нужно показать данные как отправителя 1, так и отправителя 2 в программе приема
Я новичок в программировании сокетов и сокетов.
спасибо