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 验证合法性连接的服务端相关推荐

  1. 03 验证合法性连接的客户端

    from socket import * import hmac,ossecret_key=b'Jedan has a big key!' def conn_auth(conn):''' 验证客户端到 ...

  2. Java中使用Jedis连接Redis服务端时提示:JedisConnectionException: Failed connecting

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  3. 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端以及订阅主题发送主题操作

    MQTT原理与应用 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端 本文章学习借鉴于太极创客团队,以表感谢.官网[http://www.taichi-maker.com/] 文章目录 ...

  4. 1.3 连接MQTT服务端

    MQTT客户端之间要想实现通讯,必须要通过MQTT服务端.因此MQTT客户端无论是发布消息还是订阅消息,首先都要连接MQTT服务端.下面我们看一下MQTT客户端连接服务端的详细过程. MQTT客户端连 ...

  5. easy connect无法连接到服务端_故障分析 | 一次因为超过最大连接数的登陆限制

    作者:王翔飞 爱可生研发团队测试成员,负责数据库管理平台的测试工作. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本文关键字:最大连接数.TCP ...

  6. 在Unity3D中连接WCF服务端

    服务端不多讲解,有一处需要改的地方.具体服务端请看WCF入门学习2-控制台做为宿主 建议实际项目不要拿去用,毕竟是mono不是原生.net.或许是个坑 由于Unity的mono版本问题不能直接用net ...

  7. flash的Socket连接,服务端用没有平台限制

    var mySocket:XMLSocket = new XMLSocket(); //本地地址,端口5000 mySocket.connect("localhost", 5000 ...

  8. 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 ...

  9. 10060 mysql_navicat连接mysql服务端报10060错误解决过程如下

    首先开启mysql的远程访问权限 1.登陆mysql mysql -u root -p 2.授权远程登录权限 修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许 ...

最新文章

  1. QCon北京2015:18个热门专题,出品人全部确认,新版网站上线
  2. 0xc000000f 由于系统注册表文件丢失或损坏,因此Windows无法加载
  3. Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略
  4. Linux shell删除变量
  5. Winform 打包 混淆 自动更新
  6. Native snappy library not available: this version of libhadoop was built without snappy support
  7. c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....
  8. 极客学院.java学习笔记
  9. C语言求1+2!+3!+...+20!
  10. 屏蔽键盘信息(低级键盘钩子)
  11. Edsger W. Dijkstra -- 巨人的肩膀
  12. 【第一课】UAV倾斜摄影测量技术
  13. 【解题报告】Kattis - adjoin 树形dp
  14. ChromeFK插件推荐系列十九:网站图片批量下载插件推荐
  15. jks文件转换成ctr,key文件
  16. 异构群体机器人协作任务分配(群体智能论文学习)
  17. 鸿蒙大战是什么,混沌氏(浑沌)、鸿蒙氏,盘古开天辟地时两个最强大的部落首领?...
  18. Java面试热点问题,synchronized原理剖析与优化
  19. 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 amp; 第一个Shader的书写...
  20. DVE14.1.4 安装和破解以及C#运行时弹框正在使用框(Trial)的去掉(CSDN网上资料整合,感谢强大的CSDN)

热门文章

  1. 深入理解SpringBoot的过滤条件--AutoConfigure
  2. 简说设计模式——组合模式
  3. Android 中的数据储存方案, 持久化技术
  4. [技术] 谈谈编程思想
  5. Hyper-V虚拟化测试12非计划的故障转移
  6. 变电站接地网的优化设计22437
  7. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
  8. PAT 乙级 1041. 考试座位号(15) Java版
  9. 1022. D进制的A+B (20)-PAT乙级真题
  10. Jboss jar包冲突及jar加载顺序