2015-04-02 58 views
1

幾年前,我編寫了一個與Python 3的聊天工作,並且在Windows和Mac上一切正常,直到現在。此功能在另一個腳本中執行:Python Socket:WinError 10022

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) 
+0

'sock'是如何定義的? – MattDMo 2015-04-02 20:03:59

+0

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) – Hustensaft 2015-04-02 20:04:26

回答

1

我認爲你必須調用sock.recvfrom(1024)之前綁定到插座。

sock.bind((YOUR_IP, PORT))