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

python 編程之twisted詳解及簡(jiǎn)單實(shí)例

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

python 編程之twisted詳解

前言:

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

    對(duì)于大多數(shù)socket來(lái)說(shuō),用戶其實(shí)只要關(guān)注三個(gè)事件就可以了。這分別是創(chuàng)建、刪除、和收發(fā)數(shù)據(jù)。python中的twisted庫(kù)正好可以幫助我們完成這么一個(gè)目標(biāo),實(shí)用起來(lái)也不麻煩。下面的代碼來(lái)自twistedmatrix網(wǎng)站,我覺(jué)得挺不錯(cuò)的,貼在這里和大家分享一下。如果需要測(cè)試的話,直接telnet localhost 8123就可以了。如果需要在twisted中處理信號(hào),可以先注冊(cè)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() 

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    pandas庫(kù)之DataFrame滑動(dòng)窗口的實(shí)現(xiàn)

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

    Python常見(jiàn)報(bào)錯(cuò)解決之SciPy和NumPy版本沖突

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

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

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

最新評(píng)論

张家界市| 石首市| 金坛市| 翁源县| 如皋市| 开江县| 诸暨市| 揭阳市| 文水县| 定陶县| 合水县| 吴江市| 桃源县| 离岛区| 大同县| 宣城市| 禄丰县| 化隆| 尚志市| 临澧县| 湖北省| 永顺县| 遂宁市| 乐都县| 定州市| 温泉县| 三亚市| 沅陵县| 徐闻县| 东源县| 泗水县| 社会| 新闻| 麟游县| 江孜县| 邵东县| 南昌县| 杭州市| 陇南市| 信宜市| 彰化市|