Python中的多线程UDP服务器

Python中的多线程UDP服务器,python,multithreading,Python,Multithreading,我正在尝试用Python构建一个多线程UDP服务器,它如下所示: import socket import threading class udpreceive: def __init__(self, port, ip): self.port = port self.ip = ip self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) def start(se

我正在尝试用Python构建一个多线程UDP服务器,它如下所示:

import socket
import threading 


class udpreceive:
    def __init__(self, port, ip):
        self.port = port
        self.ip = ip
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    def start(self):
        while True:
            data, addr = self.sock.recvfrom(2048)
            print(data)

s1 = udpreceive(514, "192.168.1.5")
s2 = udpreceive(515, "192.168.1.5")
threads = [threading.Thread(target=s1.start), threading.Thread(target=s2.start)]

for th in threads:
     th.start()
     print(f'threads {th} started')
     th.join(0.1)
我收到以下错误:
data,addr=self.sock.recvfrom(2048)OSError:[WinError 10022]提供的参数无效

有什么问题吗?我已经坚持了好几个小时了

这是客户端

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
counter = 0
while True:
    send_data = "Client number" + str(counter)
    s.sendto(send_data.encode(), ('127.0.0.1', 777))
    print(send_data)
    counter += 1

您需要先绑定到套接字: