Errno 10049:创建UDP套接字

时间:2016-03-28 16:06:16

标签: python udp

该代码用于创建客户端UDP套接字。我不知道什么是错的。

# UDPPingerClient.py

from socket import *

serverName = '';
serverPort = 12000;


clientSocket = socket(AF_INET, SOCK_DGRAM)

message = raw_input("Input message:")
clientSocket.sendto(message,(serverName,serverPort))

modifiedMessage, serverAddress = clientSocket.recvfrom(1024)
print(modifiedMessage)
print(serverAddress)
clientSocket.close()
  

第12行的Errno 10049

2 个答案:

答案 0 :(得分:0)

我猜您使用的是基于错误编号的Windows,根据Microsoft,Errno 10049如下:

  

无法分配请求的地址。   请求的地址在其上下文中无效。这通常是由于尝试绑定到对本地计算机无效的地址。当远程地址或端口对远程计算机无效时(例如,地址或端口0),这也可能由connect,sendto,WSAConnect,WSAJoinLeaf或WSASendTo产生。

尝试使用相同的套接字发送和接收可能导致这种情况。因此,您需要创建两个套接字,一个用于接收,另一个用于发送信息。

答案 1 :(得分:0)

MSDN:

  

WSAEADDRNOTAVAIL 10049   无法分配请求的地址。

     

请求的地址在其上下文中无效。这通常是由于尝试绑定到无效的地址   本地电脑。这也可能来自connectsendto,   远程地址或端口时WSAConnectWSAJoinLeafWSASendTo   对远程计算机无效(例如,地址或端口0)。

这是因为您尝试使用空sendto来呼叫serverName。使用有效地址,例如'example.com''127.0.0.1''0.0.0.0',它会有效。

当您在新套接字上调用sendto时,它首先尝试将服务器地址和端口转换为可由系统API使用的演示文稿。空字符串不是有效地址,您会收到错误。