python socketserver从网页打开文件

时间:2017-03-07 19:45:03

标签: python sockets

我正在尝试创建一个在本地计算机上运行的小型服务器,它将从网页获取请求并在openoffice中打开一个文件。这种方法到目前为止有效。但是,有时请求不会立即通过。当发生这种情况时,我将等待至少5秒,然后尝试多次击中它,然后所有请求同时进入。我真的希望这是可靠的。有什么我想念的东西会阻止这种情况发生吗?任何帮助将不胜感激。我也知道我做事的方式可能不是最安全的。我正在尝试使其功能化,然后努力使其更安全。

import SocketServer
import subprocess
import time


class MyTCPHandler(SocketServer.StreamRequestHandler):
    def handle(self):
        # self.request is the TCP socket connected to the client
        self.data = self.rfile.readline().strip()
        print self.data

        try:
            if self.data != '':
                st = self.data.split('\n', 1)[0]
                #print st
                st = st.split(' ')[1]
                print st
                if ".odt" in st:
                    p = subprocess.Popen('C:\openoffice\program\swriter.exe "'+st[1:]+'"')
                    time.sleep(1)
                    p.terminate()
        except Exception as err:
            print err
        # just send back the same data, but upper-cased
        self.wfile.write(self.data.upper())

PORT = 8081
httpd = SocketServer.TCPServer(("", PORT), MyTCPHandler)
print "serving at port", PORT
httpd.serve_forever()

0 个答案:

没有答案