最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 編程之twisted詳解及簡單實例

 更新時間:2017年01月28日 09:20:47   投稿:lqh  
這篇文章主要介紹了python 編程之twisted詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下

python 編程之twisted詳解

前言:

 我不擅長寫socket代碼。一是用c寫起來比較麻煩,二是自己平時也沒有這方面的需求。等到自己真正想了解的時候,才發(fā)現(xiàn)自己在這方面確實有需要改進的地方。最近由于項目的原因需要寫一些Python代碼,才發(fā)現(xiàn)在python下面開發(fā)socket是一件多么爽的事情。

    對于大多數(shù)socket來說,用戶其實只要關(guān)注三個事件就可以了。這分別是創(chuàng)建、刪除、和收發(fā)數(shù)據(jù)。python中的twisted庫正好可以幫助我們完成這么一個目標,實用起來也不麻煩。下面的代碼來自twistedmatrix網(wǎng)站,我覺得挺不錯的,貼在這里和大家分享一下。如果需要測試的話,直接telnet localhost 8123就可以了。如果需要在twisted中處理信號,可以先注冊signal函數(shù),在signal函數(shù)中調(diào)用reactor.stop(),后面twisted繼續(xù)call stop_factory,這樣就可以繼續(xù)完成剩下的清理工作了。

from twisted.internet.protocol import Factory 
from twisted.protocols.basic import LineReceiver 
from twisted.internet import reactor 
 
class Chat(LineReceiver): 
 
  def __init__(self, users): 
    self.users = users 
    self.name = None 
    self.state = "GETNAME" 
 
  def connectionMade(self): 
    self.sendLine("What's your name?") 
 
  def connectionLost(self, reason): 
    if self.name in self.users: 
      del self.users[self.name] 
 
  def lineReceived(self, line): 
    if self.state == "GETNAME": 
      self.handle_GETNAME(line) 
    else: 
      self.handle_CHAT(line) 
 
  def handle_GETNAME(self, name): 
    if name in self.users: 
      self.sendLine("Name taken, please choose another.") 
      return 
    self.sendLine("Welcome, %s!" % (name,)) 
    self.name = name 
    self.users[name] = self 
    self.state = "CHAT" 
 
  def handle_CHAT(self, message): 
    message = "<%s> %s" % (self.name, message) 
    for name, protocol in self.users.iteritems(): 
      if protocol != self: 
        protocol.sendLine(message) 
 
 
class ChatFactory(Factory): 
 
  def __init__(self): 
    self.users = {} # maps user names to Chat instances 
 
  def buildProtocol(self, addr): 
    return Chat(self.users) 
 
  def startFactory(self): 
    print 'start' 
 
  def stopFactory(self): 
    print 'stop' 
 
reactor.listenTCP(8123, ChatFactory()) 
reactor.run() 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Python繪圖系統(tǒng)之散點圖和條形圖的實現(xiàn)代碼

    Python繪圖系統(tǒng)之散點圖和條形圖的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了如何使用Python繪制散點圖和條形圖,文中的示例代碼講解詳細,對我們的學習或工作有一定的幫助,感興趣的可以了解一下
    2023-08-08
  • Python實現(xiàn)注冊、登錄小程序功能

    Python實現(xiàn)注冊、登錄小程序功能

    本文通過實例代碼給大家介紹了Python實現(xiàn)登錄、注冊小程序功能,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • keras實現(xiàn)多種分類網(wǎng)絡(luò)的方式

    keras實現(xiàn)多種分類網(wǎng)絡(luò)的方式

    這篇文章主要介紹了keras實現(xiàn)多種分類網(wǎng)絡(luò)的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • opencv中圖像疊加/圖像融合/按位操作的實現(xiàn)

    opencv中圖像疊加/圖像融合/按位操作的實現(xiàn)

    這篇文章主要介紹了opencv中圖像疊加/圖像融合/按位操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • OpenCV-Python實現(xiàn)輪廓擬合

    OpenCV-Python實現(xiàn)輪廓擬合

    本文將結(jié)合實例代碼,介紹OpenCV-Python實現(xiàn)輪廓擬合,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • Python實現(xiàn)多線程下載文件的代碼實例

    Python實現(xiàn)多線程下載文件的代碼實例

    這篇文章主要介紹了Python實現(xiàn)多線程下載文件的代碼實例,需要的朋友可以參考下
    2014-06-06
  • Pytorch平均池化nn.AvgPool2d()使用方法實例

    Pytorch平均池化nn.AvgPool2d()使用方法實例

    平均池化層,又叫平均匯聚層,下面這篇文章主要給大家介紹了關(guān)于Pytorch平均池化nn.AvgPool2d()使用方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • pandas庫之DataFrame滑動窗口的實現(xiàn)

    pandas庫之DataFrame滑動窗口的實現(xiàn)

    本文主要介紹了pandas庫之DataFrame滑動窗口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Python常見報錯解決之SciPy和NumPy版本沖突

    Python常見報錯解決之SciPy和NumPy版本沖突

    Scipy是基于Numpy的科學計算工具庫,方便、易于使用、專為科學和工程設(shè)計,是一個用于數(shù)學、科學、工程領(lǐng)域的常用軟件包,這篇文章主要給大家介紹了關(guān)于Python常見報錯解決之SciPy和NumPy版本沖突的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python實現(xiàn)批量上傳本地maven庫到nexus

    Python實現(xiàn)批量上傳本地maven庫到nexus

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)批量上傳本地maven庫到nexus,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的小伙伴可以參考下
    2024-01-01

最新評論

阿克苏市| 凤翔县| 斗六市| 娱乐| 栾城县| 曲麻莱县| 南木林县| 吉安市| 沁水县| 中西区| 乡城县| 广灵县| 得荣县| 惠州市| 班玛县| 敦化市| 盐津县| 民乐县| 萨嘎县| 汝阳县| 南溪县| 浠水县| 峡江县| 满城县| 衢州市| 玉树县| 遂川县| 沾益县| 贞丰县| 阿克苏市| 盐山县| 达孜县| 筠连县| 克拉玛依市| 绥滨县| 黔西| 吴川市| 原平市| 仪陇县| 新巴尔虎右旗| 定结县|