欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python單線程下實(shí)現(xiàn)多個(gè)socket并發(fā)過(guò)程詳解

 更新時(shí)間:2019年07月27日 16:39:43   作者:bainianminguo  
這篇文章主要介紹了python單線程下實(shí)現(xiàn)多個(gè)socket并發(fā)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

先看服務(wù)端的代碼

import sys
# import socket
import time
import gevent
from gevent import socket
from gevent import monkey
monkey.patch_all()
#類似于python中的黑魔法,把很多模塊的阻塞的變成非阻塞的,比如socket中的rece和send都變
# 為不阻塞了
 
 
def server(port):
  s = socket.socket()
  s.bind(("127.0.0.1",port))
  s.listen(2000)
  while True:
    cli,add = s.accept()
    gevent.spawn(handle_request,cli)
    #通過(guò)gevent的啟動(dòng)一個(gè)協(xié)程,把客戶端的socket對(duì)象傳進(jìn)去
def handle_request(s):
  try:
    while True:
      data = s.recv(1024)
      print("收到的信息:",str(data,encoding="utf-8"))
      s.send(data)
      if not data:
        s.shutdown(socket.SHUT_WR)
        #把和客戶端這個(gè)鏈接銷毀
  except Exception as ex:
    print(ex)
  finally:
    s.close()
 
if __name__ == '__main__':
  server(8000)

在看客戶端的代碼,分別使用多線程和多進(jìn)程實(shí)現(xiàn)

import socket
import gevent
import threading
import multiprocessing
'''
ip_bind = ("127.0.0.1",8000)
c = socket.socket()
c.connect(ip_bind)
while True:
  data = input("客戶端:")
  c.send(bytes(data,encoding="utf-8"))
  data = c.recv(1024)
  print("服務(wù)端:",str(data,encoding="utf-8"))
 
c.close()
'''
import socket
import gevent
ip_bind = ("127.0.0.1",8000)
c = socket.socket()
c.connect(ip_bind)
def f(n):
  while True:
    # c.send(bytes(n,encoding="utf-8"))
    data = str(n)
    c.send(bytes(data,encoding="utf-8"))
    data = c.recv(1024)
    print("server:",str(data,encoding="utf-8"))
  c.close()
x = []
if __name__ == '__main__':
  l = []
  """
  多線程實(shí)現(xiàn)并發(fā)客戶端
    for i in range(500):
     t = threading.Thread(target=f,args=[str(i),])
     t.start()
     l.append(t)
  for t in l:
     t.join()
 
  """
  # 多進(jìn)程實(shí)現(xiàn)并發(fā)客戶端
  for i in range(100):
    p = multiprocessing.Process(target=f,args=[i,])
    p.start()
    l.append(p)
  for p in l:
    p.join()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python爬蟲框架feapder的使用簡(jiǎn)介

    python爬蟲框架feapder的使用簡(jiǎn)介

    這篇文章主要介紹了python爬蟲框架feapde的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用python爬蟲,感興趣的朋友可以了解下
    2021-04-04
  • python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法

    python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法

    這篇文章主要介紹了python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法,具體轉(zhuǎn)化方法文中給大家介紹的非常詳細(xì),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python?sklearn數(shù)據(jù)預(yù)處理之?dāng)?shù)據(jù)縮放詳解

    python?sklearn數(shù)據(jù)預(yù)處理之?dāng)?shù)據(jù)縮放詳解

    數(shù)據(jù)的預(yù)處理是數(shù)據(jù)分析,或者機(jī)器學(xué)習(xí)訓(xùn)練前的重要步驟,這篇文章主要為大家詳細(xì)介紹了sklearn數(shù)據(jù)預(yù)處理中數(shù)據(jù)縮放的相關(guān)知識(shí),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-10-10
  • Python.append()與Python.expand()用法詳解

    Python.append()與Python.expand()用法詳解

    今天小編就為大家分享一篇Python.append()與Python.expand()用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能

    python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能

    這篇文章主要介紹了python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • win10下python3.8的PIL庫(kù)安裝過(guò)程

    win10下python3.8的PIL庫(kù)安裝過(guò)程

    這篇文章主要介紹了win10下python3.8的PIL庫(kù)安裝方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python得到windows自啟動(dòng)列表的方法

    python得到windows自啟動(dòng)列表的方法

    今天小編就為大家分享一篇python得到windows自啟動(dòng)列表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 使用PyCharm安裝pytest及requests的問(wèn)題

    使用PyCharm安裝pytest及requests的問(wèn)題

    這篇文章主要介紹了使用PyCharm安裝pytest及requests的相關(guān)資料,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python人工智能tensorflow函數(shù)tf.assign使用方法

    python人工智能tensorflow函數(shù)tf.assign使用方法

    這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tf.assign使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • TensorFlow實(shí)現(xiàn)checkpoint文件轉(zhuǎn)換為pb文件

    TensorFlow實(shí)現(xiàn)checkpoint文件轉(zhuǎn)換為pb文件

    今天小編就為大家分享一篇TensorFlow實(shí)現(xiàn)checkpoint文件轉(zhuǎn)換為pb文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02

最新評(píng)論