溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何通過監聽端口實現唯一腳本運行

發布時間:2020-07-29 09:06:59 來源:億速云 閱讀:506 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了Python如何通過監聽端口實現唯一腳本運行,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

我就廢話不多說了,大家還是直接看代碼吧

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如何通過監聽端口實現唯一腳本運行的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女