zoukankan      html  css  js  c++  java
  • socket模块综合

    1.客户端的链接合法性验证:

      恶意的登录:扫描端口(0-65535)

       tcp没有做登录客户端时:

       使用hmac生成对随机字符串的摘要

    import os
    import hmac
    import socket
    
    def auth(conn):
        msg = os.urandom(32) #生成一个随机字符串
        conn.send(msg) #发送到客户端
        result = hmac.new(secret_key,msg) #处理这个字符串,得到一个结果
        # print(result)
        client_digest = conn.recv(1024)  # 接收客户端返回的处理结果
        if result.hexdigest() == client_digest.decode('utf-8'):
            print('合法的链接') #对比成功可以继续通信
            return True
        else:
            print('非法链接')
            return False
    secret_key = b'123'
    sk = socket.socket()
    sk.bind(('192.168.16.33',8088))
    sk.listen()
    conn,addr = sk.accept()
    # print(conn)
    if auth(conn):
        print(conn.recv(1024))
        conn.close()
    else:
        conn.close()
    sk.close()
    

      

    import hmac
    import socket
    sk = socket.socket()
    sk.connect(('192.168.16.33',8088))
    
    def auth(sk):
        # print(sk)
        msg = sk.recv(1024)
        result = hmac.new(key,msg)
        # print(result)
        res = result.hexdigest()
        sk.send(res.encode('utf-8'))
    
    key = b'123'
    auth(sk)
    sk.send(b'upload')
    sk.close() 

     2:socketserver模块;

      tcp协议,一个服务端同时与对个客户端同时通信

      

    import socketserver
    class Myserver(socketserver.BaseRequestHandler):
        def handle(self):
            conn = self.request
            while True:
                conn.send(b'abc')
                print(conn.recv(1024))
    server = socketserver.ThreadingTCPServer(('192.168.16.33',8088),Myserver)
    server.serve_forever()
    

      

    import socket
    
    sk = socket.socket()
    sk.connect(('192.168.16.33',8088))
    while True:
        ret = sk.recv(1024)
        print(ret)
        sk.send(b'byebye')
    sk.close()
    

      

  • 相关阅读:
    结对项目——自动生成小学四则运算题目
    个人项目作业
    自我介绍+软工5问
    团队作业3--需求改进&系统设计
    团队作业2-需求规格说明书
    团队项目-第一周
    结对项目:四则运算表达式生成程序
    个人项目作业--WC的实现
    自我介绍+软工五问
    团队作业3-需求改进&系统设计
  • 原文地址:https://www.cnblogs.com/lijinming110/p/9663325.html
Copyright © 2011-2022 走看看