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


Posted in Python onMay 05, 2020

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

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()

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

当我们运行这段程序时,在浏览器上输入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 相关文章推荐
Django自定义认证方式用法示例
Jun 23 Python
关于Python中浮点数精度处理的技巧总结
Aug 10 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
详解js文件通过python访问数据库方法
Mar 03 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
python能做哪方面的工作
Jun 15 Python
通过实例解析python and和or使用方法
Nov 14 Python
python2.7使用scapy发送syn实例
May 05 #Python
python 使用raw socket进行TCP SYN扫描实例
May 05 #Python
Python之变量类型和if判断方式
May 05 #Python
Python实现CAN报文转换工具教程
May 05 #Python
python TCP包注入方式
May 05 #Python
python构造IP报文实例
May 05 #Python
python3通过udp实现组播数据的发送和接收操作
May 05 #Python
You might like
让你的网站首页自动选择语言转跳
2006/12/06 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
校友会欢迎辞
2014/01/13 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
七年级语文教学反思
2016/03/03 职场文书
辞职申请书范本
2019/05/20 职场文书