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 相关文章推荐
python进程管理工具supervisor使用实例
Sep 17 Python
Python中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
Python 多线程Threading初学教程
Aug 22 Python
利用Python进行异常值分析实例代码
Dec 07 Python
Python3计算三角形的面积代码
Dec 18 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
Python自定义线程类简单示例
Mar 23 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Python类如何定义私有变量
Feb 03 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
pandas apply多线程实现代码
Aug 17 Python
如何使用Django Admin管理后台导入CSV
Nov 06 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
FCKeditor的安装(PHP)
2007/01/13 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php 获取可变函数参数的函数
2009/08/26 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
js 操作css实现代码
2009/06/11 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python flask实现分页的示例代码
2018/08/02 Python
python3实现逐字输出的方法
2019/01/23 Python
Python os.access()用法实例
2019/02/18 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
自动化专业个人求职信范文
2013/11/29 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python