【发布时间】:2013-04-14 00:40:21
【问题描述】:
我有一个在我的计算机上运行的 python 脚本。它打开一个套接字并打印它收到的任何内容。这绝对有效——我已经设法从其他计算机连接到它并发送数据。
问题是我的 heroku 应用程序无法连接到套接字。
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((daemon_socket_vars['host'], daemon_socket_vars['port']))
s.send("Hi!")
s.close()
heroku 应用程序在超时后在第二行失败。当我在我的笔记本电脑或朋友的笔记本电脑上运行相同的东西时(而充当服务器的 python 脚本在这两种情况下都在我的笔记本电脑上运行)它可以工作。有谁知道为什么heroku会遇到这个问题?谢谢!
【问题讨论】:
-
IIRC,Heroku 只允许从端口 80 和 443 进行外部连接。
-
在另一台机器上测试时,你是否使用了相同的脚本?
-
是否应该限制它可以连接的端口会影响它可以连接到的端口?我笔记本电脑上的套接字正在侦听端口 50000。我没有指定 heroku 应用程序应该使用哪个端口。所有机器上的python脚本都是一样的。