当前位置: 首页 > 面试题库 >

需要关闭python套接字/在我的开发环境中找到当前正在运行的服务器

邵俊才
2023-03-14
问题内容

我正在尝试学习python(使用Flask微框架),并且感到困惑,因为我相信在代码中的某个地方我会保持服务器开放。

我用“ python app.py”启动服务器,然后关闭它,但是它仍然存在!

我不知道这怎么可能,但我在连接方面一定做错了。

确实有两个问题。

第一:如何找到活动的连接/套接字并关闭它

第二:有什么方法可以诊断什么是打开的连接,我的直觉是sqlLite没有关闭,因为这是我实现的最后一件事。

这是一个文件应用程序(减去配置文件和静态内容),因此如果需要,我可以发布代码。

生成错误(文件夹位置已更改):

/Development/flask_projects/test_email/env/bin/python /Development/flask_projects/test_email/app.py
 * Running on http://127.0.0.1:5000/
Traceback (most recent call last):
  File "Development/flask_projects/test_email/app.py", line 58, in <module>
    app.run()
  File "Development/flask_projects/wtchn_email/env/lib/python2.7/site-packages/Flask-0.8-py2.7.egg/flask/app.py", line 703, in run
    run_simple(host, port, self, **options)
  File "/Library/Python/2.7/site-packages/Werkzeug-0.7.1-py2.7.egg/werkzeug/serving.py", line 612, in run_simple
    test_socket.bind((hostname, port))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 48] Address already in use

问题答案:

如果你使用linux,则可以使用lsof来找出哪个进程正在使用给定的端口,尽管如此,你可能必须首先安装它,用法非常简单:

lsof -i :5000


 类似资料:
  • 所以在Java中创建一个服务器端应用。 关于关闭连接,我只是想知道如果在读卡器之前关闭套接字会发生什么。 例如服务器端 围绕套接字中的输入流实例化的bufferedreader会随着套接字的关闭而关闭,还是我手上有潜在的内存泄漏?

  • 问题内容: 假定以下代码,其中“ sock”是TCP套接字的句柄,该句柄先前已使用epfd指定的epoll文件描述符注册。 如果套接字无论如何都要随后关闭,是否仍然需要调用epoll_ctl?还是由于关闭套接字而隐式注销了套接字? 问题答案: 从手册页: Q6 关闭文件描述符会导致它自动从所有epoll集中删除吗? A6 是,但是请注意以下几点。文件描述符是对打开的文件描述的引用(请参阅(2))。

  • 问题内容: 我敢肯定这是一个简单的问题,但是我不知道socket.io文档在哪里,而http://labs.learnboost.com/socket.io/上的文档并没有真正的帮助。 假设我有一个socket.io http服务器,并写了一个网站来连接它。 我如何为服务器提供保护,以使未经授权的人(未通过网站连接的人)被阻止/丢弃/禁止。 如何在服务器端结束套接字连接?所以如果我有 如何结束套接

  • 问题内容: 我有服务器和客户端。我的服务器接受所有连接并返回到客户端字符串。但是当我尝试发送更多行时,它崩溃了 这是我的服务器代码: 这是我的客户代码: 问题答案: 来自in中的javadoc: 关闭返回将关闭关联的套接字。 另外,关闭(和所有其他打印机/写入器)也将关闭其基础流。因此,您可以通过关闭(in ),然后尝试写入已关闭的套接字来关闭您的套接字。 要解决此问题,请不要关闭。垃圾收集将为您

  • 如果我不关闭套接字: 客户端没有输出。服务器从不发送消息,或者客户端从不接收消息。 有人知道发生这种情况的可能原因吗?客户端使用一个线程接收消息,一个线程发送消息。客户端套接字在主客户端线程中创建,因此接收者和发送者线程使用当前套接字进行通信。 提前谢了。