• 网络编程


    一、md5验证

    import hashlib
    m=hashlib.md5()
    m.update(b"test")
    print (m.hexdigest())
    结果:098f6bcd4621d373cade4e832627b4f6

    二、客户端代码
      
    #客户端
    import socket
    client=socket.socket() #生成socket连接对象
    client.connect(("localhost",6969))
    while True:
    msg=input(">>>:")
    if not msg:
    continue
    if msg.startswith("get"):
    client.send(msg.encode("utf-8")) #发送命令到服务端 ;
    cmd_res_size=client.recv(1024) #接收文件的大小;
    print ("文件大小为:",cmd_res_size)
    client.send(b"ready to recv file..")
    cmd_size=0
    cmd_data=b''
    filename=msg.split()[1]
    f=open(filename+".new","wb")
    while cmd_size!=int(cmd_res_size.decode()):
    data=client.recv(1024)
    cmd_size+=len(data)
    f.write(data)
    else:
    print ("cmd received done !",cmd_size)
    print (cmd_data.decode())
    f.close()
    client.close()
    三、服务端
      
    #服务端
    import socket,os
    so_server=socket.socket()
    so_server.bind(("localhost",6969))
    so_server.listen()
    print ("等电话!")
    while True: #实现多个链路连接;
    conn,addr=so_server.accept()
    print ("new connect",addr)
    while True:
    print ("等待新指令!")
    data = conn.recv(1024)
    if not data:
    print("客户端已经断开")
    break
    cmd,filename=data.decode().split()
    if os.path.isfile(filename):
    f=open(filename,"rb")
    file_size=str(os.stat(filename).st_size)
    print (file_size.encode())
    conn.send(file_size.encode())
    conn.recv(1024) #wait for ack;
    for line in f:
    conn.send(line)
    f.close()
    so_server.close()

    8.文件md5较验.
  • 相关阅读:
    高燕师姐博客
    2015.1.12
    功能连接分析论文
    半结构化面试
    各大银行
    独立思考者模型:用专家的思维思考问题
    独立思考者模型:避开思维误区的沼泽
    独立思考者模型:寻找潜藏在表象背后的真相
    独立思考者模型:如何分辨信息的真伪
    独立思考者模型:你相信灵魂转世假说吗?
  • 原文地址:https://www.cnblogs.com/wulafuer/p/10185970.html
Copyright © 2020-2023  润新知