03 验证合法性连接的服务端
from socket import * import hmac,ossecret_key=b'Jedan has a big key!' def conn_auth(conn):''' 认证客户端链接:param conn::return:''' print('开始验证新链接的合法性')msg=os.urandom(32)#生成一个32字节的随机字符串conn.sendall(msg)h=hmac.new(secret_key,msg)digest=h.digest()respone=conn.recv(len(digest))return hmac.compare_digest(respone,digest)def data_handler(conn,bufsize=1024):if not conn_auth(conn):print('该链接不合法,关闭')conn.close()returnprint('链接合法,开始通信')while True:data=conn.recv(bufsize)if not data:breakconn.sendall(data.upper())def server_handler(ip_port,bufsize,backlog=5):''' 只处理链接:param ip_port::return:''' tcp_socket_server=socket(AF_INET,SOCK_STREAM)tcp_socket_server.bind(ip_port)tcp_socket_server.listen(backlog)while True:conn,addr=tcp_socket_server.accept()print('新连接[%s:%s]' %(addr[0],addr[1]))data_handler(conn,bufsize)if __name__ == '__main__':ip_port=('127.0.0.1',9999)bufsize=1024server_handler(ip_port,bufsize)
转载于:https://www.cnblogs.com/work14/p/10235901.html
03 验证合法性连接的服务端相关推荐
- 03 验证合法性连接的客户端
from socket import * import hmac,ossecret_key=b'Jedan has a big key!' def conn_auth(conn):''' 验证客户端到 ...
- Java中使用Jedis连接Redis服务端时提示:JedisConnectionException: Failed connecting
场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...
- 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端以及订阅主题发送主题操作
MQTT原理与应用 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端 本文章学习借鉴于太极创客团队,以表感谢.官网[http://www.taichi-maker.com/] 文章目录 ...
- 1.3 连接MQTT服务端
MQTT客户端之间要想实现通讯,必须要通过MQTT服务端.因此MQTT客户端无论是发布消息还是订阅消息,首先都要连接MQTT服务端.下面我们看一下MQTT客户端连接服务端的详细过程. MQTT客户端连 ...
- easy connect无法连接到服务端_故障分析 | 一次因为超过最大连接数的登陆限制
作者:王翔飞 爱可生研发团队测试成员,负责数据库管理平台的测试工作. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本文关键字:最大连接数.TCP ...
- 在Unity3D中连接WCF服务端
服务端不多讲解,有一处需要改的地方.具体服务端请看WCF入门学习2-控制台做为宿主 建议实际项目不要拿去用,毕竟是mono不是原生.net.或许是个坑 由于Unity的mono版本问题不能直接用net ...
- flash的Socket连接,服务端用没有平台限制
var mySocket:XMLSocket = new XMLSocket(); //本地地址,端口5000 mySocket.connect("localhost", 5000 ...
- asp连接oracle 服务端,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...
Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...
- 10060 mysql_navicat连接mysql服务端报10060错误解决过程如下
首先开启mysql的远程访问权限 1.登陆mysql mysql -u root -p 2.授权远程登录权限 修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许 ...
最新文章
- QCon北京2015:18个热门专题,出品人全部确认,新版网站上线
- 0xc000000f 由于系统注册表文件丢失或损坏,因此Windows无法加载
- Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略
- Linux shell删除变量
- Winform 打包 混淆 自动更新
- Native snappy library not available: this version of libhadoop was built without snappy support
- c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....
- 极客学院.java学习笔记
- C语言求1+2!+3!+...+20!
- 屏蔽键盘信息(低级键盘钩子)
- Edsger W. Dijkstra -- 巨人的肩膀
- 【第一课】UAV倾斜摄影测量技术
- 【解题报告】Kattis - adjoin 树形dp
- ChromeFK插件推荐系列十九:网站图片批量下载插件推荐
- jks文件转换成ctr,key文件
- 异构群体机器人协作任务分配(群体智能论文学习)
- 鸿蒙大战是什么,混沌氏(浑沌)、鸿蒙氏,盘古开天辟地时两个最强大的部落首领?...
- Java面试热点问题,synchronized原理剖析与优化
- 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 amp; 第一个Shader的书写...
- DVE14.1.4 安装和破解以及C#运行时弹框正在使用框(Trial)的去掉(CSDN网上资料整合,感谢强大的CSDN)
热门文章
- 深入理解SpringBoot的过滤条件--AutoConfigure
- 简说设计模式——组合模式
- Android 中的数据储存方案, 持久化技术
- [技术] 谈谈编程思想
- Hyper-V虚拟化测试12非计划的故障转移
- 变电站接地网的优化设计22437
- [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
- PAT 乙级 1041. 考试座位号(15) Java版
- 1022. D进制的A+B (20)-PAT乙级真题
- Jboss jar包冲突及jar加载顺序