client.py
import socket
import struct sk=socket.socket()
sk.connect(('127.0.0.1',9005)) while True:
username=input("请输入用户名: ")
password=input("请输入密码: ")
blen=struct.pack("i",len(username.encode('utf-8')))
sk.send(blen)
sk.send(username.encode('utf-8'))
sk.send(password.encode('utf-8'))
if 'Q' in [username.upper(),password.upper()]: # 先 send 再判断,客户端主动发起断开
break
else:
answer=sk.recv(1024).decode("utf-8")
if bool(answer=='True'): # 从字符串的'True'转为 布尔类型的True
print("验证通过")
else:
print("用户名或密码错误")
sk.close()
server.py
import struct
import socket sk=socket.socket()
sk.bind(("127.0.0.1",9005))
sk.listen() while True:
conn,_ = sk.accept()
while True:
blen=struct.unpack('i',conn.recv(4))[0]
username=conn.recv(blen).decode('utf-8')
password=conn.recv(1024).decode('utf-8')
print(username,password)
if 'Q' in [username.upper(),password.upper()]:
break
else:
with open("userinfo", 'r') as f:
for line in f.readlines():
if username==line.strip().split("|")[0] and password==line.strip().split("|")[1]:
conn.send('True'.encode('utf-8'))
break
else:
conn.send('False'.encode('utf-8')) conn.close()
print("断开与当前客户端的连接,等待其他客户端的连接") sk.close()

最新文章

  1. Thinking in Java——笔记(14)
  2. fork &vfork --陈皓
  3. Remoting和Webservice的区别
  4. centos7 学习
  5. 转:CentOS 7 安装Nginx
  6. ERROR 1005 (HY000): Can't create table'matrix.system_log' (errno: 150)
  7. 使用parseJSON代替eval
  8. Delhi 安装ocx的方法
  9. java基础---java语言概述
  10. IOS微信分享功能简单实现
  11. Java_Queue接口
  12. Spring 拦截器postHandle无法修改Response的原因
  13. CPU高速缓存行与内存关系 及并发MESI 协议
  14. URI和URL之间的区别
  15. onload、onpageshow、onpagehide、onbeforeunload、onunload的谣言纠正及特点介绍
  16. POJ.3145.Common Substrings(后缀数组 倍增 单调栈)
  17. Redis支持的数据类型及相应操作命令:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sorted set:有序集合)
  18. DataWindow.Net组件示例(全部开源)
  19. 莫队算法详解和c实现
  20. 《构建高性能 Web站点》笔记

热门文章

  1. Docker笔记5:实现加速器,加快下载/拉取镜像速度
  2. js获取foreach循环选中的值
  3. Python基础笔记2-ruamel.yaml读写yaml文件
  4. Python中列表、元组、字典、集合与字符串,相关函数,持续更新中……
  5. AT一万亿港元市值之差,腾讯和阿里到底“差”在哪里?
  6. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)
  7. Iobuffer的使用
  8. mysql You can't specify target table 'sys_right_menu' for update in FROM clause (不能从Objor子句中指定目标表“SysRyType菜单)
  9. 全网通4G工业路由器模块和串口转网口/4G/有线/WiFi/LTE模块的实现原理
  10. 看完本文若不能让你学通“Python”,我将永远退出IT界