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 + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
python3编写C/S网络程序实例教程
Aug 25 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
pycharm的console输入实现换行的方法
Jan 16 Python
python 二维数组90度旋转的方法
Jan 28 Python
django 自定义过滤器的实现
Feb 26 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
python绘制规则网络图形实例
Dec 09 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Python性能测试工具Locust安装及使用
Dec 01 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
php自定义函数之递归删除文件及目录
2010/08/08 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
JavaScript静态的动态
2006/09/18 Javascript
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
js右键菜单效果代码
2007/07/21 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
javascript实时显示当天日期的方法
2015/05/20 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
JSONP基础知识详解
2017/03/19 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
python语言中with as的用法使用详解
2018/02/23 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python 创建守护进程的示例
2020/09/29 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
会计自我鉴定
2014/02/04 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书