我已经使用我的IPv4地址创建了一个主机/客户端应用程序,但现在想要创建相同的应用程序,除了我希望它能够与不同网络上的客户端连接。我认为我将服务器绑定到我的公共IP地址但是这给了我这个错误:[WinError 10049] The requested address is not valid in its context
我应该用什么IP来绑定我的服务器并连接远程客户端?
# host = public ip address. Took out just for safety concerns but on my
# machine the actually ip is there
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
print("Server @ " + host + " awaiting connections on port " + str(port))
s.listen(1)
while True:
client, address = s.accept()
print("Connected with " + str(address))
data = client.recv(1024)
print(str(address) + " name is " + data.decode("utf-8"))
if not data:
break
s.close()
答案 0 :(得分:0)
您的程序必须绑定到分配给其运行的计算机的IP地址。如果您在防火墙后面,则需要防火墙将流量转发到该IP。
公共IP:1.1.1.1
计算机IP:2.2.2.2
程序绑定到2.2.2.2,客户端连接到1.1.1.1(路由器/防火墙将流量从公共1.1.1.1转发到私有2.2.2.2)。