我创建了一个客户端脚本和一个服务器脚本,这些服务器脚本可以在服务器在计算机上运行时正常运行,但是我想将服务器托管在heroku上,我已经完成了所有设置,并将heroku应用程序运行,但是我无法将客户端连接到该服务器
server.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 5001))
s.listen(5)
client.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('applicationhere.herokuapp.com/0.0.0.0', 5001))
这样做会返回错误:
socket.gaierror: [Errno 11001] getaddrinfo failed
我对使用套接字不是很满意,所以我对问题所在感到困惑。
答案 0 :(得分:0)
该错误表明主机名无法解析。
如果您将服务器套接字在所有IP地址上绑定为
server_socket.bind(('0.0.0.0', 5001))
那么您应该能够使用公共ip / DNS连接到服务器
client_socket.connect(('applicationhere.herokuapp.com', 5001))
很明显,客户端必须知道如何解析applicationhere.herokuapp.com
,并且没有任何阻塞(例如防火墙)。