几年前,我用 Python 3 编写了一个聊天程序,直到现在,一切都在 Windows 和 Mac 上运行良好。此函数在另一个脚本中执行:
import socket
import pickle
def get(sock):
data, addr = sock.recvfrom(1024)
data = pickle.loads(data) #to convert data back to a dictionary
return data, addr
在 Mac 上,这仍然可以正常工作。但是 Windows 抛出一个错误:
File "C:\Users\...\network.py", line 15, in get
data, addr = sock.recvfrom(1024)
OSError: [WinError 10022] An invalid argument was supplied
有什么问题?
编辑:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)