好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python基于socketserver實現并發,驗證客戶端的合法性

python基于socketserver實現并發,驗證客戶端的合法性

熱門標簽:外呼系統哪些好辦 如何申請400電話費用 池州外呼調研線路 武漢外呼系統平臺 富錦商家地圖標注 沈陽外呼系統呼叫系統 沈陽防封電銷卡品牌 沈陽人工外呼系統價格 江西省地圖標注

一、socketserver實現并發

tcp協議的socket是只能和一個客戶端通信的,使用socketserver可以實現和多個客戶端通信,他是在socket的基礎上進行的封裝,底層還是調用的socket。

socket是底層模塊

socketserver是基于socket完成的

socketserver代碼格式:

服務端:

import socketserver     # 引入模塊
import time
​
​
# 類名隨便定義,但是必須繼承socketserver.BaseRequestHandler此類。
class Myserver(socketserver.BaseRequestHandler):
​
    def handle(self):           # handle方法,固定名字
        conn = self.request     # conn相當于每個客戶端連接過來的,客戶端信息
        '''
        以下就是基于conn客戶端信息,對每個客戶端鏈接到服務端必須做的操作
        conn——>等于客戶端的連接信息
        以此實現并發連接
        '''
        while True:
            try:
                content = conn.recv(1024).decode('utf-8')
                conn.send(content.upper().encode('utf-8'))
                time.sleep(1)
            except ConnectionResetError:
                break
​
​
# 對 socketserver.ThreadingTCPServer 類實例化對象,將IP地址,端口號,以及自己定義的類名傳入,并返回一個對象
server = socketserver.ThreadingTCPServer(('127.0.0.1', 4444), Myserver)
server.serve_forever()      # 執行對象server_forever方法,開啟服務端

客戶端:

import socket
​
sk = socket.socket()
sk.connect(('127.0.0.1', 4444))
​
while True:
    sk.send(b'heelo')
    content = sk.recv(1024).decode('utf-8')
    print(content)

二、驗證客戶端合法性

在分布式系統中實現一個簡單的客戶端鏈接認證功能,又不像SSL那么復雜,那么利用hmac+加鹽的方法實現。

思路:

服務端發送隨機字符串(并用客戶端和服務端都知道的秘鑰對隨機字符串進行加密)——>客戶端接收到服務端發送的隨機字符串(并用相同的秘鑰進行加密發送回服務端)——>服務端接收到客戶端發送的加密字符串和自己加密的字符串做對比(如果一致,就是合法客戶端,不一致,就立即關閉)

使用hashlib方法:

服務端

import socket
import hashlib
import os
​
# 設置雙方都擁有的秘鑰
secret = '秘鑰'.encode('utf-8')
​
sk = socket.socket()
sk.bind(('127.0.0.1', 4444))
​
sk.listen()
conn, _ = sk.accept()
​
# 給服務端發送32位隨機字節串
count = os.urandom(32)
conn.send(count)
​
# 并對字節串進行加鹽加密
hs = hashlib.sha1(secret)
hs.update(count)
info_server = hs.hexdigest()
​
# 接收客戶端發送的對字節串加密后的信息
info_client = conn.recv(1024).decode('utf-8')
​
# 客戶端加密后的信息和服務端加密后的信息做對比
if info_server == info_client:
    # 相等則連接合法,繼續操作
    print('合法連接')
else:
    # 不相等則斷開鏈接
    print('非合法用戶')
    conn.close()

客戶端

import socket
import hashlib
​
# 雙方共有的秘鑰
secret = '秘鑰'.encode('utf-8')
​
sk = socket.socket()
sk.connect(('127.0.0.1', 4444))
​
# 接收服務端發送的隨機字節
count = sk.recv(1024)
​
# 對隨機字節進行加密
hs = hashlib.sha1(secret)
hs.update(count)
info = hs.hexdigest().encode('utf-8')
​
# 把加密后的字節發送回服務端做判斷
sk.send(info)

以上就是python基于socketserver實現并發,驗證客戶端的合法性的詳細內容,更多關于python socketserver實現并發的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 淺談對Python變量的一些認識理解
  • 教你利用Python破解ZIP或RAR文件密碼
  • Python協程asyncio模塊的演變及高級用法
  • Python進階之高級用法詳細總結
  • python3 如何使用 goto 跳轉執行到指定代碼行
  • 如何用python抓取B站數據
  • python print()函數的end參數和sep參數的用法說明
  • python實現某考試系統生成word試卷
  • 解讀python基于netconf協議獲取網元的數據

標簽:銅川 黑龍江 阿里 通遼 呂梁 株洲 常德 潛江

巨人網絡通訊聲明:本文標題《python基于socketserver實現并發,驗證客戶端的合法性》,本文關鍵詞  python,基于,socketserver,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python基于socketserver實現并發,驗證客戶端的合法性》相關的同類信息!
  • 本頁收集關于python基于socketserver實現并發,驗證客戶端的合法性的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久偷窥视频| 理论片大全免费伦片| 欧美色视频网| 粉色视频免费高清视频中文| 日本人做爰毛片免费播| 啊轻点灬大巴太粗太长了小熊| 高清美女直播刺激视频| 两男生互摸jiji秘?网站| 成人女人A片免费蕾丝网站| 久久综合久久伊人| 一级片免费观看| 国产福利电影在线观看| 国产亚洲精品久久777777黑寡妇 | 亚洲女厕所小便bbb| 啊老公| 女人又爽?又黄?游戏视频| 放荡小婬妇H肉辣文糙汉军婚视频| 黄色三级斤| 大片在线免费观看入口| 换脸Al无码免费看片| 无码国产色欲XXXX视频| 国产三点都露的大尺度电影| 我捡的夫君称帝了| 风间由美无打码的电影| 中文字幕无码亚洲字幕成a人蜜桃 少妇婬乱高潮AAAA片东京热 | 俄罗斯美女P大毛又多| 成人在线你懂的| 欧美一区二| 亚洲一区二区三区在线观看蜜桃| 14表妺让我破了她的处| 用力呀…使劲我快受不了| 艳妇厨房激战正文| 久久精热| 少妇被c??黄?在线网站| 亚洲αv久久久噜噜噜噜噜| 99热人人| 91免费视频网站| 天天做天天欢天天爽| 露出调教羞耻91??九色| 公车疯狂高潮呻吟求饶H漫画视频 品产品久精品国产拍2023 | 原神美女裸体?羞羞尿裤子网站|