OSError: [Errno 98] 地址已在使用中(由公共服务器托管的 Python 程序)

OSError: [Errno 98] Address already in use (Python program hosted by public server)

本文关键字:服务器 程序 Python Errno 地址 OSError      更新时间:2023-09-26

对不起。我以前做过python,但是在Web服务器中托管python程序是我正在学习的新事物。您的帮助将不胜感激。

我的目标是在网页中托管一个pyhton程序,以便用户可以提供一组输入。基于输入,python程序进行一些计算并向用户提供输出。整个事情在窗户上运行良好。在窗口中,我正在做的是:我运行cmd和我键入 C:''Python34''python.exe -m http.server 8020然后我运行python程序(下面提供了最重要的部分),它开始了:"在港口服务服务器启动 - 本地主机:8020"

然后从chrome I键入:http://127.0.0.1:8000,提供输入并获取输出。

我在网络服务器中具有相同的目录结构(基于 centos)。但是,我不能同时运行http.server和python程序,因为当我从同一端口运行第二个程序时,它会给出OSerror。我该如何解决这个问题?

我首先发布javascript代码,然后发布python程序。当我在网页中运行时,我从 chrome 的检查元素中收到 404 错误。

<script>
function submitReq() {
 // alert("calling post");
  var singleValues = $( "#single" ).val();
  var payload = {};
  payload["Seq"] = $("#seq").val();
  payload["Mut_Seq"] = $("#mut_seq").val();
  payload["Ct"] = parseInt($("#ct").val());
  payload["Sodium_con"] = parseInt($("#sodium_con").val());
 // alert(JSON.stringify(payload));
   $.post("/getDNAsequence",
        JSON.stringify(payload),
        function(data,status){
        var res = data.replace(new RegExp("'n", 'g'), " <br/> ");
            $("#output").html(res);
        });
};
$("#submit").click(submitReq);
</script>

class MyServer(BaseHTTPRequestHandler):
    def do_GET(self) :
        if (self.path == "/"):
            with open ("dna.html", "r") as myfile:
                data=myfile.read().replace(''n', ''n')
                self.wfile.write(bytes(data, "utf-8"))
    def do_POST(self):
        if(self.path=="/getDNAsequence"):
            content_len = int(self.headers.get('content-length', 0))
            post_body = self.rfile.read(content_len)
            parsed_json = json.loads(post_body.decode("utf-8"))
            Seq = parsed_json['Seq']
            Mut_Seq = parsed_json['Mut_Seq']
            Ct = parsed_json['Ct']
            Sodium_con = parsed_json['Sodium_con']
            baal = Forward_mamapcr_primer(Seq, Mut_Seq, Ct, Sodium_con)
            self.wfile.write(bytes(baal, "utf-8"))
        self.send_response(200)
        self.send_header("Access-Control-Allow-Origin", "*")
def main():    
    hostName = "localhost"
    hostPort = 8020
    print ("serving at port")
    myServer = HTTPServer((hostName, hostPort), MyServer)
    print( "Server Starts - %s:%s" % (hostName, hostPort))
    try:
        myServer.serve_forever()
    except KeyboardInterrupt:
        pass
    myServer.server_close()
if __name__=='__main__':
    main()
使用

apache 服务器的 cgi-bin 使用用户提供的参数运行 python 脚本。