日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”?

發布時間:2023/12/15 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在嘗試使用Python在HTTP上實現“ tail -f”之類的東西.當前,我正在嘗試使用Tornado,但即使我執行異步請求,它一次也只能處理一個連接.

import socket

import subprocess

import tornado.gen as gen

import tornado.httpserver

import tornado.ioloop

import tornado.iostream

import tornado.options

import tornado.web

from tornado.options import define, options

define("port", default=8888, help="run on the given port", type=int)

define(

"inputfile",

default="test.txt",

help="the path to the file which we will 'tail'",

type=str)

class MainHandler(tornado.web.RequestHandler):

@tornado.web.asynchronous

@gen.engine

def get(self):

print "GOT REQUEST"

inputfile = open(options.inputfile)

p = subprocess.Popen(

"./nettail.py",

stdin=inputfile,

stdout=subprocess.PIPE)

port_number = int(p.stdout.readline().strip())

self.write("

")

self.write("Hello, world

")

self.flush()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)

stream = tornado.iostream.IOStream(s)

yield gen.Task(stream.connect, ("127.0.0.1", port_number))

while True:

data = yield gen.Task(stream.read_until, "

")

self.write(data)

self.flush()

def main():

tornado.options.parse_command_line()

application = tornado.web.Application([

(r"/", MainHandler),

])

http_server = tornado.httpserver.HTTPServer(application)

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":

main()

我正在啟動的過程是輸出到套接字的簡單“尾巴”.

import random

import socket

import sys

import time

#create an INET, STREAMing socket

s = socket.socket(

socket.AF_INET, socket.SOCK_STREAM)

# Open the connection.

try:

for attempt_number in xrange(5):

port_number = random.randint(9000, 65000)

try:

s.bind(("localhost", port_number))

except socket.error:

continue

# We successfully bound!

sys.stdout.write("{0}".format(port_number))

sys.stdout.write("

")

sys.stdout.flush()

break

#become a server socket

s.listen(5)

# Accept a connection.

try:

(clientsocket, address) = s.accept()

while True:

line = sys.stdin.readline()

if not line:

time.sleep(1)

continue

clientsocket.sendall(line)

finally:

clientsocket.close()

finally:

s.close()

./nettail.py可以正常工作,但是Tornado HTTP服務器一次僅處理一個請求.

我想使用長期運行的持久HTTP連接來執行此操作,因為它與舊版瀏覽器兼容.我了解Web套接字就是在現代瀏覽器中的工作方式.

編輯:

我在Linux和Solaris而不是Windows上運行它.這意味著我可以在文件上使用tornado.iostream,而不是通過套接字程序使用.不過,這不是文檔功能,因此我為每個連接啟動一個套接字程序.

總結

以上是生活随笔為你收集整理的python web界面整合 tail_如何使用Python Tornado在HTTP上实现“ tail”?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99国产一区 | 男女啪啪无遮挡 | 精品熟妇无码av免费久久 | 久久夜色精品国产欧美乱极品 | 日本少妇中出 | 国产另类在线 | 丰满少妇大力进入 | 啪啪网站免费看 | 国产精品一区二区三区在线看 | 凹凸精品熟女在线观看 | 一二三四视频社区在线 | 国产孕妇一区二区三区 | 国产精品综合久久 | 午夜影院一区二区三区 | 黄色网www | 公侵犯人妻中文字慕一区二区 | 国产精品传媒在线观看 | av网址观看| 亚洲av无码一区二区三区性色 | 免费无遮挡无码永久在线观看视频 | 国产欧美一区二区三区视频在线观看 | 天天想你在线观看完整版电影免费 | 97自拍网 | 暧暧视频在线观看 | 麻豆av免费看 | 任你操精品视频 | 国产中文字幕三区 | 国产精品乱轮 | 自拍偷拍福利 | 高清日韩 | 欧美专区在线播放 | 色婷婷中文字幕 | 成人毛片一级 | 白丝动漫美女 | 欧美精品在线观看视频 | 国产xxxx性hd极品| 成人自拍视频 | 久草操| 色翁荡息又大又硬又粗又爽 | 50一60岁老妇女毛片 | 成人一级在线 | 97操 | 亚洲欧美日韩国产成人精品影院 | 婷婷久久一区 | 精品爆乳一区二区三区 | 成人听书哪个软件好 | 97久久国产亚洲精品超碰热 | 色丁香六月 | 好吊操这里有精品 | 免费观看在线高清 | 久久久精品综合 | 台湾佬中文字幕 | 超碰超碰97 | 日本视频在线免费观看 | 国产精品扒开腿做爽爽爽视频 | 欧美日韩一区三区 | 国产精品永久久久久久久久久 | 久久精品国产99精品国产亚洲性色 | 久久99深爱久久99精品 | 欧日韩不卡视频 | 欧美黄色大片免费观看 | 伦理av在线| 污视频网站在线观看 | 亚洲AV乱码国产精品观看麻豆 | 久操国产在线 | 日韩精品成人在线观看 | 影音先锋成人网 | 日韩午夜片 | 亚州国产精品视频 | 91九色国产在线 | 香蕉久久国产av一区二区 | 亚洲国产精品无码观看久久 | 日本一区免费电影 | 麻豆av导航| 好男人www在线视频 我们的2018在线观看免费高清 | 国产欧美激情视频 | 久久中文一区 | 情侣av | 久久99精品久久只有精品 | 亚州男人天堂 | 久久久久久久久久久福利 | 国产成人超碰人人澡人人澡 | 在线观看h视频 | 热99精品视频 | 欧美特级黄色 | 黄色成人在线观看 | 亚洲精品视频免费在线观看 | 国产色无码精品视频国产 | 亚洲黄色小说图片 | 亚洲玖玖玖| 五月婷婷在线视频 | 99在线视频精品 | 色爽av| 精品人妻av一区二区三区 | 亚洲一级片免费 | 久久精品夜| av在线官网 | 亚洲第一区在线观看 | 欧色丰满女同hd |