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发布模块的步骤分享
Feb 21 Python
python中global用法实例分析
Apr 30 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
python实现手机销售管理系统
Mar 19 Python
Python求离散序列导数的示例
Jul 10 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
vue常用指令代码实例总结
Mar 16 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
python em算法的实现
Oct 03 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
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
Javascript开发包大全整理
2006/12/22 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
javascript轮播图算法
2016/10/21 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
使用python加密自己的密码
2015/08/04 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
美国滑板店:Tactics
2020/11/08 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
家长会演讲稿
2014/04/26 职场文书
2015年调度员工作总结
2015/04/30 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS