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

Python實(shí)現(xiàn)socket非阻塞通訊功能示例

 更新時(shí)間:2019年11月06日 11:48:12   作者:weixin_42359464  
這篇文章主要介紹了Python實(shí)現(xiàn)socket非阻塞通訊功能,結(jié)合實(shí)例形式分析了Python使用socket模塊進(jìn)行非阻塞通訊的原理、多線程及客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)socket非阻塞通訊功能。分享給大家供大家參考,具體如下:

非阻塞需要多線程編程

服務(wù)端

方式1: 使用threading庫(kù)實(shí)現(xiàn)多線程

基本方法和單進(jìn)程基本寫法一致, 將收發(fā)部分封裝為函數(shù)以便開啟其他線程:

import socket
import time
import threading
def handle_socket(conn, addr):
  while True:
    data = conn.recv(1024)
    print(data.decode('utf-8'))
    time.sleep(3)
    send_data = 'got it'
    conn.send(send_data.encode('utf-8'))
  conn.close()

基本設(shè)置和調(diào)用部分: 綁定, 監(jiān)聽, 接受連接:

if __name__ == '__main__':
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.bind(('0.0.0.0', 8888))
  s.listen()
  while True:
    conn, addr = s.accept()
    client_thread = threading.Thread(target=handle_socket, args=[conn, addr])
    client_thread.start()

方式2: 通過繼承StreamRequestHandler庫(kù)實(shí)現(xiàn)多線程

收發(fā)部分寫到handle方法中:

import socketserver
from socketserver import StreamRequestHandler
import time
class MyHandler(StreamRequestHandler):
  def handle(self):
    # addr = self.request.getpeername()
    # print('get connection from ', addr)
    # self.wfile.write('hello, thank for your connection'.encode())
    while True:
      datarecv = self.request.recv(1024)
      if not datarecv:
        break
      time.sleep(3)
      print(datarecv.decode())
      self.request.send("got it".encode())

開啟

myserver = socketserver.ThreadingTCPServer(('127.0.0.1', 8888), MyHandler)
myserver.serve_forever()

客戶端

客戶端:

import socket
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect(('127.0.0.1', 8888))
while True:
  conn.send('hello'.encode())
  data = conn.recv(1024)
  print(data.decode())

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python的Django框架中的數(shù)據(jù)過濾功能

    Python的Django框架中的數(shù)據(jù)過濾功能

    這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)過濾功能,為更新數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)的數(shù)據(jù)查找提供了方便,需要的朋友可以參考下
    2015-07-07
  • Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解

    Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解

    這篇文章主要介紹了Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • pycharm連接虛擬機(jī)的實(shí)現(xiàn)步驟

    pycharm連接虛擬機(jī)的實(shí)現(xiàn)步驟

    本文主要介紹了pycharm連接虛擬機(jī)的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • 如何在代碼中安裝?Python?模塊

    如何在代碼中安裝?Python?模塊

    這篇文章主要介紹了如何在代碼中安裝Python模塊,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • python通過Windows下遠(yuǎn)程控制Linux系統(tǒng)

    python通過Windows下遠(yuǎn)程控制Linux系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python通過Windows下遠(yuǎn)程控制Linux系統(tǒng),實(shí)現(xiàn)對(duì)socket模塊認(rèn)識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python裝飾器基礎(chǔ)概念與用法詳解

    Python裝飾器基礎(chǔ)概念與用法詳解

    這篇文章主要介紹了Python裝飾器基礎(chǔ)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了Python裝飾器的概念、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型

    python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型

    這篇文章主要為大家介紹了python人工智能human?learn繪圖就可以創(chuàng)建機(jī)器學(xué)習(xí)模型的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 詳解Python的Lambda函數(shù)與排序

    詳解Python的Lambda函數(shù)與排序

    本篇文章主要是介紹了Python的Lambda函數(shù)與排序,簡(jiǎn)單的介紹了Lambda函數(shù)的用法和排序,有需要的朋友可以了解一下。
    2016-10-10
  • Python樹的鏡像的實(shí)現(xiàn)示例

    Python樹的鏡像的實(shí)現(xiàn)示例

    樹的鏡像是指將樹的每個(gè)節(jié)點(diǎn)的左右子樹交換,得到一棵新的樹,本文主要介紹了Python樹的鏡像的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    讀萬卷書不如行萬里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶用python來做幾個(gè)整蠱的小程序,大家可以在過程中查缺補(bǔ)漏,看看自己掌握程度怎么樣,發(fā)給朋友加固一下友誼
    2021-10-10

最新評(píng)論

塔河县| 鸡泽县| 黄山市| 河西区| 南宫市| 长泰县| 马鞍山市| 大方县| 合阳县| 乡城县| 迭部县| 石渠县| 天峨县| 和平县| 凤台县| 潮安县| 额济纳旗| 泽普县| 泾源县| 铅山县| 刚察县| 兰溪市| 德安县| 富阳市| 嘉祥县| 怀化市| 通化市| 纳雍县| 张北县| 四川省| 通榆县| 长宁县| 中西区| 富顺县| 民和| 洛川县| 繁峙县| 全州县| 长丰县| 金溪县| 曲阜市|