Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何停止TCPServer_Python_Sockets_Tcpserver_Socketserver - Fatal编程技术网

Python 如何停止TCPServer

Python 如何停止TCPServer,python,sockets,tcpserver,socketserver,Python,Sockets,Tcpserver,Socketserver,在三次迭代中,每一次都需要启动TCPServer,然后立即停止。所有三次都需要在端口8000上启动 正如下面代码中定义的那样,TCPServer将启动。但它只在第一次迭代中开始。其他两次迭代无法启动TCPServer,因为端口8000已被在上一次(第一次)迭代中启动的TCPServer使用。 为确保端口8000可用,需要关闭之前启动的TCP服务器 如何终止(停止)已经运行的TCPServer import SimpleHTTPServer import SocketServer def st

在三次迭代中,每一次都需要启动TCPServer,然后立即停止。所有三次都需要在端口8000上启动

正如下面代码中定义的那样,TCPServer将启动。但它只在第一次迭代中开始。其他两次迭代无法启动TCPServer,因为端口8000已被在上一次(第一次)迭代中启动的TCPServer使用。 为确保端口8000可用,需要关闭之前启动的TCP服务器

如何终止(停止)已经运行的TCPServer

import SimpleHTTPServer
import SocketServer


def startServer():
    Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
    Handler.extensions_map.update({'.webapp': 'application/x-web-app-manifest+json', })
    try:
        httpd = SocketServer.TCPServer(("", 8000), Handler)
        httpd.serve_forever()
        print('httpd server has been successfully started ')
    except Exception, e:
        print(e)


for i in range(3):
    startServer()
使用
shutdown()
告诉
serve\u forever()
循环停止并等待它停止。版本2.6中的新功能

对于您的代码,它应该像

    httpd.serve_forever()
    print('httpd server has been successfully started ')
    httpd.shutdown()
    httpd.server_close()
    print('httpd server has been successfully stopped')

我将让OP更好地使用这个和链接页面底部的示例,以满足所需的要求。

为了清晰起见,请使用Python版本
SocketServer
在3.0中被重命名为
SocketServer
。您正在使用macOS吗?
shutdown()
告诉
serve_forever()
循环停止并等待它停止。版本2.6中的新功能@马克:运行Python 2.7。请作为答案发布,这样我们就可以投票了!