1

几年前,我用 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)
4

1 回答 1

1

我认为您必须在调用之前绑定到套接字sock.recvfrom(1024)

sock.bind((YOUR_IP, PORT))
于 2015-04-03T08:57:18.130 回答