Python 2.7 Python UDP网络套接字。错误:[错误号10049]

Python 2.7 Python UDP网络套接字。错误:[错误号10049],python-2.7,networking,udp,Python 2.7,Networking,Udp,我正试图建立一个简单的UDP连接使用Python代码,两台电脑之间通过互联网。 在PC_1上运行的代码: import socket import time HOST = "ip_address_of_PC2" PORT = 5555 data = "Hello World!!" s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) while True: s.sendto(data, (HOST, PORT)) prin

我正试图建立一个简单的UDP连接使用Python代码,两台电脑之间通过互联网。 在PC_1上运行的代码:

import socket
import time

HOST = "ip_address_of_PC2"
PORT = 5555
data = "Hello World!!"

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:
    s.sendto(data, (HOST, PORT))
    print "sent: ",data
    time.sleep(1)
在第二台电脑上运行的代码:

import socket

HOST = "ip_address_of_PC1"
PORT = 5555

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.bind((HOST,PORT))

while True:
    print s.recv(30)
在第二台PC上运行代码时,我收到以下错误消息:

return getattr(self._sock,name)(*args)
socket.error: [Errno 10049] The requested address is not valid in its context
将打印s.recv(30)更改为:

data, addr = s.recvfrom(30)
print data
在第二个PC代码中,主机变量需要第二个PC ip的值,而不是第一个:

HOST = "ip_address_of_PC2"
在PC1上运行的代码:

import socket
import time

HOST = "public ip_address_of_PC2"
PORT = 5555
data = "Hello World!!"

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:
    s.sendto(data, (HOST, PORT))
    print "sent: ",data
    time.sleep(1)
在PC2上运行的代码:

import socket

HOST = "private ip_address_of_PC2"
PORT = 5555

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.bind((HOST,PORT))

while True:
    print s.recv(30)

将PC2的主机变量更改为PC2的专用ipv4地址,并将PC1的主机变量更改为PC2的公用ipv4地址时,该功能正常工作。