帅爆太阳的男人

1,socketserver是解决TCP服务器和多个客户端进行通信

  • 服务器:
import socketserver

class MySocket(socketserver,BaseRequestHandle):  # 里边的参数也是固定的,不用改变
def handle(self): # 方法的名字时固定的,必须是这个名字
msg = self.request.recv(1024).decode("utf-8")
print(msg)
self.request.send(msg.upper().encode("utf-8")) # 号里的两个参数第一个是地址,第二个是类名(增加一个线程)
server = socketserver.ThreadingTCPServer(("127.0.0.1",8001),Mysocket)
server.ser_forver() # 开启一个永久性的服务
  • 客户端:
import socket

sk = socket.socket()
sk.connect(("127.0.0.1",8001))
msg_s = input(">>>")
sk.send(msg_s.encode("utf-8"))
print(sk.recv(1024).decode("utf-8"))
sk.close()

2,三次登录验证:

  • client:
import socket
import hashlib
import json
sk = socket.socket()
sk.connect(("127.0.0.1",8080))
dic = {"status":False,"username":username,"password":None}
c = 3
while c:
username = input("请输入用户名:")
password = input("请输入密码:")
md5_obj = hashlib.md5(password.encode("utf-8"))
md5_obj.update(username.encode("utf-8"))
pawd_m = md5_obj.hexdigest()
dic["username"] = username
dic["password"] = pawd_m
str_dic = json.dumps(dic)
sk.send(str_dic.encode("utf-8"))
res_dic = sk.recv(1024).decode("utf-8")
result = json.loads(res_dic)
if result["status"]:
print("登录成功")
else:
print("失败, %s" % result["reason"])
c = c - 1
sk.close()
  • 服务器
import socketserver
import json
import hashlib def zhuce():
pass class MySocket(socketserver.BaseRequestHandler):
def handle(self):
sor = b"wusir"
while 1:
str_dic = self.request.recv(1024).decode("utf-8")
if not str_dic:
break
dic = json.loads(str_dic)
if not dic["status"]:
with open("info", "r", encoding="utf-8") as f:
for info in f:
username, pawd_txt = info.strip().split("|")
if username == dic["username"]:
md5_obj = hashlib.md5(sor)
md5_obj.update(dic["password"].encode("utf-8"))
pawd = md5_obj.hexdigest()
if pawd_txt == pawd:
dic["status"] = True
else:
dic["reason"] = "密码错误"
break
else:
dic["reason"] = "用户不存在"
zhuce()
str_dic = json.dumps(dic)
self.request.send(str_dic.encode("utf-8"))
else:
self.request.send("已经登录成功".encode("utf-8")) server = socketserver.TCPServer(("127.0.0.1", 8080), MySocket) server.serve_forever()

3,进度条

import time  # 导入时间模块
for i in range(51): # 因为每次输出的是每个循环数乘以2,所以要达成100%,所以循环遍历50就可以了
time.sleep(0.12) # 每当循环出一个数就成序就在这休眠0.12秒
print("\r" + i * "=" + ">" + str(i * 2) + "%", end="") # 固定写法(\r之前的内容不管是什么都不会输出)

socketserver模块三次登陆验证,身份验证的更多相关文章

  1. Angular 应用中的登陆与身份验证

    Angular 经常会被用到后台和管理工具的开发,这两类都会需要对用户进行鉴权.而鉴权的第一步,就是进行身份验证.由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更 ...

  2. xp远程桌面登陆需要身份验证问题解决

    今天在客户这边部署了一个专门用于远程访问的计算机,但是系统是xp,windows服务器最新的已经到2012版本了,windows服务器从2008开始就要求远程桌面登陆支持nla,因此在使用xp登陆wi ...

  3. socketserver模块实现并发和连接合法性验证

    一.socketserver模块 1.sockeserver的源码流程 2.简单的使用 socketserver服务端 import socketserver class MyServer(socke ...

  4. sql server 2008 windows验证改为混合登陆SqlServer身份验证用户名密码

    安装过程中,SQL Server 数据库引擎设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式.本主题介绍如何在安装后更改安全模式. 如果在安装过程中选择“ ...

  5. AngularJS中的身份验证

    欢迎大家指导与讨论 : )  一.  身份验证的意义  首先呢,网络应用的身份验证的意图在于:保护网站中的重要资源.基于某些原因这些资源并不能公开,比如付费资源(交过钱的用户才能上的网络课程),或者一 ...

  6. [转]IIS的各种身份验证详细测试

    本文转自:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326163 一.    IIS的身份验证概述 1. ...

  7. Shiro身份验证及授权(二)

    一.Shiro 身份验证 身份验证的步骤: 收集用户身份 / 凭证,即如用户名 / 密码: 调用 Subject.login 进行登录,如果失败将得到相应的 AuthenticationExcepti ...

  8. Asp.net 身份验证方式?

    [Forms 身份验证] 通过其可将没有通过身份验证的请求重定向到使用 HTTP 客户端重定向的 HTML 窗体的系统.用户提供凭据并提交该窗体.如果应用程序验证该请求,系统就会发出包含凭据或密钥的 ...

  9. windows集成身份验证

    集成windows身份验证 这种验证方式里面也分为两种情况 NTLM验证 这种验证方式需要把用户的用户名和密码传送到服务端,服务端验证用户名和密码是否和服务器的此用户的密码一致.用户名用明码传送,但是 ...

随机推荐

  1. jquery toggle()设置

    很多朋友对jquery toggle()比较熟练,甚至经常用到,而且对toggle的三个参数也比较了解$(selector).toggle(speed,callback,switch).但是当你设置$ ...

  2. 笔试算法题(08):输出倒数第K个节点

    出题:输入一个单向链表,要求输出链表中倒数第K个节点 分析:利用等差指针,指针A先行K步,然后指针B从链表头与A同步前进,当A到达链表尾时B指向的节点就是倒数第K个节点: 解题: struct Nod ...

  3. PS学习一

    1.使用缩放工具时是对文档窗口进行的缩放,它只影响视图比例:而对图像的缩放则是指对图像文件本身进行的物理缩放,它会使图像的内容变大或变小. 2.分辨率是指单位长度内包含的像素点的数量,它的单位通常为像 ...

  4. dubbo理解

    Dubbo服务的调用基本上都是出现在分布式项目中,最常见的电商网站.涉及买卖的APP等. 比如某个购物APP,目前最常见的架构就是做成分布式架构,拆分成很多个系统,比如用户模块.短信模块.产品模块.订 ...

  5. hdu 4948 Kingdom(推论)

    hdu 4948 Kingdom(推论) 传送门 题意: 题目问从一个城市u到一个新的城市v的必要条件是存在 以下两种路径之一 u --> v u --> w -->v 询问任意一种 ...

  6. [bzoj2005][Noi2010][能量采集] (容斥 or 欧拉函数)

    Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后, 栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种 ...

  7. Windows学习总结(12)——Windows 10系统开始运行-cmd命令大全

    gpedit.msc-----组策略 sndrec32-------录音机 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff---------注 ...

  8. <<编程之美>> -- 队列中取最大值操作的问题

    不得不说编程之美是一本好书,虽然很多题目在做acm中的过程中遇到过,不过还是有很多值得思考的地方 这是今天在编程之美上看到的一个问题,对于栈转化成队列的一个思考 平时都太过依赖c++内函数库中的栈和队 ...

  9. 【NOIP2017练习】溢出(模拟)

    题意: 思路: a*b<=c <====> b<=c div a var ch,maxs,s:ansistring; v,k,i,maxl,l,len,cnt,cas:long ...

  10. POJ2632 Crashing Robots 解题报告

    Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is neede ...