Python 通过监听端口实现唯一脚本运行方式

 更新时间:2020年05月05日 21:44:53   作者:To be a cool guy  
这篇文章主要介绍了Python 通过监听端口实现唯一脚本运行方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧

try:
 s = socket.socket()
 s.bind(('127.0.0.1', port))
except:
 log.info(' * already has an instance, so exit.')
 exit(0)

补充知识:Python:一个简单的tornado程序:监听服务器端口,访问时给浏览器返回一个字符串

一个简单的tornado程序

tornado是python里的一个模块,它是一种web服务器软件的开源版本

它作为web服务器,具有较出色的抗负载能力,它适用于用户量大,高并发,或者大量的HTTP持久连接的情况。

我们来看一段简单的程序代码

import tornado.web
import tornado.ioloop

class IndexHander(tornado.web.RequestHander):
  def get(self):
   self.write("hello world! My name is alien!")

if __name__ = "__main__":
 app = tornado.web.Application([
  (r"/", IndexHander)
 ])
 app.listen(8000)
 tornado.ioloop.IOLoop.current().start()

当我们运行这段程序时,在浏览器上输入ip+我们监听的端口就可以显示这样的效果:

那么我们现在逐句分析这段小代码:

1、

import tornado.web
import tornado.ioloop

首先要进行导入操作

这里的tornado.web是tornado的基础web框架模块

tornado.ioloop是tornado的核心I/O循环模块(也就是说,服务一起,就不会自己关闭了)ioloop封装了linux的epoll和BSD的kquene,这个循环模块是tornado高效的基础

2、

class IndexHander(tornado.web.RequestHander):
  def get(self):
   self.write("hello world! My name is alien!")

这里是创建了一个类,继承了tornado.web.RequestHander类,其实就是一个业务处理类,用于接收请求的

里面的get函数就是处理get请求的

write函数这里返回了一个字符串,也就响应信息为这段字符串

3、

if __name__ = "__main__":

这段python代码就是当入口函数为当前文件时,执行以下代码

4、

app = tornado.web.Application([
  (r"/", IndexHander)
 ])

这段代码是利用tornado.web下的Application类实例化出一个对象,这个对象名叫app,(r"/", IndexHander)这个是路由映射

Application类是tornado.web框架的核心应用类,是与服务器对应的接口,它里面保存了路由映射表

5、

app.listen(8000)

这里的listen是绑定了监听端口8000

用Application类创建出来的对象app中,有一个listen方法,因此可以直接调用listen

所以listen就是创建一个http服务器后绑定监听端口

注意注意:

这里的listen只是绑定了端口,并没有开启监听

6、

tornado.ioloop.IOLoop.current().start()

这里是启动该实例的I/O循环

IOLoop.current()返回了当前线程的ioloop实例,也就是返回了一个对象–当前线程读写操作的对象

IOLoop.start()启动了ioloop实例的I/O循环,等待客户端的链接

注意注意:

IOLoop.start()才开启了监听,刚刚上面的listen是没有开启监听的

以上这篇Python 通过监听端口实现唯一脚本运行方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中数字(Number)数据类型常用操作

    Python中数字(Number)数据类型常用操作

    本文主要介绍了Python中数字(Number)数据类型常用操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python NumPy科学计算库的高级应用

    Python NumPy科学计算库的高级应用

    这篇文章主要为大家介绍了Python NumPy科学计算库的高级应用深入详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 一篇文章教你学会使用Python绘制甘特图

    一篇文章教你学会使用Python绘制甘特图

    甘特图又称为横道图、条状图,它是以作业排序为目的,将活动与时间联系起来的最早尝试的工具之一,能够很直观地显示项目、进度等和时间的内在关系随着时间的进展情况,在管理和生产活动中被广泛使用
    2021-09-09
  • Python编写单元测试代码实例

    Python编写单元测试代码实例

    这篇文章主要介绍了Python编写单元测试代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python中字典的基础介绍及常用操作总结

    Python中字典的基础介绍及常用操作总结

    字典也是python的数据类型中的一种,它由许多键值对组成,它是一种可变容器模型,一般情况下键是唯一的,字典支持嵌套,下面这篇文章主要给大家介绍了关于Python中字典的基础介绍及常用操作,需要的朋友可以参考下
    2021-09-09
  • python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】

    python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】

    这篇文章主要介绍了Pycharm 新建模板默认添加编码格式-作者-时间等信息 ,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Python基于爬虫实现全网搜索并下载音乐

    Python基于爬虫实现全网搜索并下载音乐

    这篇文章主要介绍了Python基于爬虫实现全网搜索并下载音乐的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • python标准库之time模块的语法与简单使用

    python标准库之time模块的语法与简单使用

    在平常的代码中,我们常常需要与时间打交道,那么在Python中,与时间处理有关的模块就包括:time、datetime以及calendar,这篇文章主要给大家介绍了关于python标准库之time模块的语法与使用的相关资料,需要的朋友可以参考下
    2021-08-08
  • pytorch实践线性模型3d详解

    pytorch实践线性模型3d详解

    这篇文章主要介绍了pytorch实践线性模型3d详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python使用Turtle模块绘制国旗的方法示例

    Python使用Turtle模块绘制国旗的方法示例

    这篇文章主要给大家介绍了关于Python使用Turtle模块绘制国旗的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论