python - 如何访问连接到heroku的socket服务器

标签 python sockets heroku

我已经创建了一个客户端脚本和一个服务器脚本,当服务器在我的计算机上运行时,它们可以正常工作,但是我想将服务器托管在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/

相关文章:

c - 是否有检查名为 sptr 的 sockaddr* 是否指向 ipv4 或 ipv6 地址的函数?

amazon-web-services - 在哪里可以找到等效的AWS上详细的Heroku日志?

ruby-on-rails - 在 Heroku 上使用 Devise 注册状态变为 500

python - Pandas :将时间戳转换为 datetime.date

ios - 如何在 Charles Proxy 中查看 Web 套接字请求

python - 客户端未在 Python 中接收数据

mysql - 在 MySQL 中生成关键字表(作为全文搜索的替代方案)

python firestore 身份验证问题

python - 从 bash 运行 .py 脚本,一旦 .py 运行完成,如何将 python 变量传递回终端?

Python:将目录和文件名存储为数据框列