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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
python字符串替换示例
Apr 24 Python
python with statement 进行文件操作指南
Aug 22 Python
Python实现过滤单个Android程序日志脚本分享
Jan 16 Python
win与linux系统中python requests 安装
Dec 04 Python
Python SQLite3简介
Feb 22 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
在python中利用opencv简单做图片比对的方法
Jan 24 Python
PyQt5显示GIF图片的方法
Jun 17 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 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
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
js模拟类继承小例子
2010/07/17 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
Python生成不重复随机值的方法
2015/05/11 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
kali中python版本的切换方法
2019/07/11 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
CSS3 边框效果
2019/11/04 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
幼儿园的门卫岗位职责
2014/04/10 职场文书
刑事和解协议书范本
2014/11/19 职场文书
MySQL 条件查询的常用操作
2022/04/28 MySQL