【发布时间】:2015-01-20 12:46:15
【问题描述】:
我有硬件可以连接到任何给定 IP 和端口组合上的原始 TCP 套接字。然后它不断地发送字符。下面这段 Python 代码可能会让您了解硬件的作用。
import socket
serverIP = '*server IP or domain*'
serverPort = 60000
Sock = socket(AF_INET, SOCK_STREAM)
Sock.connect((serverIP, serverPort))
while (1):
f = open ("send-data.txt","r")
while 1:
c = f.readline()
if not c:
break
Sock.send(c + '\n')
Sock.shutdown(0)
Sock.close()
运行此代码时,它的行为与我的硬件系统完全一样。 send-data.txt 文件包含类似于硬件发送的字符。
我使用SocketServer 库在 Python 中编写了一个套接字服务器。它允许连接、接收字符流并将其存储到本地(新创建的)文件中。目前,我在我的系统上运行此代码,作为localhost,它可以工作。我想通过网页提供这些文件。
我希望能够在远程服务器上做同样的事情。如您所见,我的硬件限制我只能使用原始 TCP 套接字。据我了解,我需要对 IaaS 等服务器机器进行低级访问。我试过pythonanywhere,但我猜他们不允许简单的python套接字。 Heroku 还要求您编写一个 Web 应用程序,我不知道该怎么做,也不知道它是否适用于我的硬件。
那里的托管/云解决方案可以充当上述套接字服务器,也可以充当 HTTP 服务器,稍后将为这些文件和网页提供服务。
【问题讨论】:
-
如果您建议的服务器可以运行我已经编写好的 Python Socket 服务器,那将是理想的。
-
PythonAnywhere dev 这里只是为了确认 OP 是正确的,我们不支持任意套接字服务器。 (还没有?)
标签: python sockets heroku tcp amazon-ec2