我已经创建了一个客户端脚本和一个服务器脚本,当服务器在我的计算机上运行时,它们可以正常工作,但是我想将服务器托管在heroku上,我已经设置了所有内容并将heroku应用程序设置为运行但是我在将客户端连接到该服务器时遇到问题
服务器.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 5001))
s.listen(5)
客户端.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
我不太擅长使用套接字,所以我真的很困惑问题是什么。
最佳答案
该错误表明无法解析主机名。
如果您将服务器套接字绑定(bind)到所有 IP 地址上
server_socket.bind(('0.0.0.0', 5001))
那么你应该能够使用公共(public) ip/DNS 连接到服务器 client_socket.connect(('applicationhere.herokuapp.com', 5001))
显然是客户端必须知道如何解析 applicationhere.herokuapp.com
并且没有任何东西阻止连接(例如防火墙)。
关于python - 如何访问连接到heroku的socket服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59896436/