【发布时间】:2016-09-07 13:24:39
【问题描述】:
让我先回答显而易见的问题。我为什么要这样做?事实上,我没有。我在下面制作了以下程序,但它旨在在远程服务器上运行。我基本上使用的是套接字库,但我想将它托管在另一台机器上,最好是谷歌、亚马逊、天蓝色等。但是,正如我在尝试之前所知道的那样,这有点不可能。谷歌应用引擎给了我一个错误,比如“访问拒绝套接字等等等等”。
我觉得我有两个选择:
我可以继续在我自己的服务器上运行此代码,如果我能弄清楚如何在托管的云基础服务器上托管此服务器脚本,或者我可以获取不包含服务器部分的每一位代码,并使其通过 POST 请求从客户端获取“数据”。
数据是从客户端发送的...
bap = {}
while 1:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_address = ("localhost", 8081)
#print 'starting up on %s port %s' % server_address
server.bind(server_address)
server.listen(5)
connection, client_address = server.accept()
#print 'connection from', connection.getpeername()
server.close()
data = connection.recv(4096)
if data in bap:
print data + " is checking in!!!"
for k, v in bap.iteritems():
if k == data:
bap[k] = 10
print bap
c = open('check.json', "w")
wiz = json.dumps(bap)
c.write(wiz)
c.close()
else:
bap[k] -= 1
if bap[k] < 0:
print k + " is Offline!!!"
mail()
c = open('log.txt', "a")
wiz = json.dumps(bap)
time1 = datetime.datetime.now().strftime("%m/%d/%y %H:%M ")
c.write(k + " is offline!!! "+ time1 + "\n")
c.close()
else:
print bap
else:
bap[data] = 10
print data + " was added!!!"
【问题讨论】:
-
不是很清楚你想做什么?你想在某个地方运行这个脚本,然后从另一台机器向它发布数据吗?
data是什么? -
我编辑得更好一些。基本上,我有使用套接字连接到服务器的客户端。他们通过套接字连接发送简单的字符串数据。所以我想把服务器托管在我家的云端。
-
您是否仍希望您的脚本监听云服务器和客户端上的套接字以向其发布数据?此外,除非您对使用低级套接字有特殊要求,否则我建议您使用简单的
bottle来运行可以接收 HTTP Post 的简单应用程序。 -
我最近听说过bottle,并将对其进行深入研究。我更喜欢它在云中,24/7 可用,因为没有重要数据被传递,客户端只是检查服务器。
标签: python server cloud hosting python-requests