tcp服务端通讯+按键发送协议

2023-11-10

import threading
import socket
import json
import keyboard

# TCP服务器配置
HOST = '0.0.0.0'
PORT = 8888

# 创建TCP服务端
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()

# 用于发送数据的客户端socket
client_socket = None


# 定义按键事件的处理函数
def handle_key_event(key):
    global client_socket
    if key.name == 'A':
        response = {"code": 0, "operationType": "1", "readerCode": "salman"}
        client_socket.send(json.dumps(response).encode())
    elif key.name == 'B':
        response = {"code": 0, "operationType": "0", "readerCode": "salman"}
        client_socket.send(json.dumps(response).encode())

# 创建按键监听线程
def key_listener():
    keyboard.on_press(handle_key_event)
    keyboard.wait()


# 创建TCP服务端线程
def tcp_server():
    global client_socket
    while True:
        # 接受客户端连接
        client_socket, address = server_socket.accept()
        print(f"Connection from {address} has been established!")

        # 接受客户端数据
        while True:
            try:
                data = client_socket.recv(1024)
                if data:
                    # 处理客户端请求
                    print(f"Received data from client: {data.decode()}")
            except:
                break

        # 关闭客户端连接
        client_socket.close()


# 启动按键监听线程和TCP服务端线程
key_listener_thread = threading.Thread(target=key_listener)
tcp_server_thread = threading.Thread(target=tcp_server)
key_listener_thread.start()
tcp_server_thread.start()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tcp服务端通讯+按键发送协议 的相关文章

  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • Jenkins流水线怎么做?

    问CHAT Jenkins流水线怎么做 CHAT回复 Jenkins流水线是一种创建 测试和部署应用程序的方法 以下是为Jenkins创建流水线的步骤 1 安装Jenkins 首先你需要在你的服务器上安装Jenkins 这个过程可能会根据你
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全

随机推荐

  • redis的5种数据类型

    1 redis的5种数据类型 string 字符串 可以为整形 浮点型和字符串 统称为元素 list 列表 实现队列 元素不唯一 先入先出原则 set 集合 各不相同的元素 hash hash散列值 hash的key必须是唯一的 sort
  • 动态规划+状态压缩思路解决旅行者问题

    问题描述 小明目前在做一份毕业旅行的规划 打算从北京出发 分别去若干个城市 然后再回到北京 每个城市之间均乘坐高铁 且每个城市只去一次 由于经费有限 希望能够通过合理的路线安排尽可能的省一些路上的花销 给定一组城市和每对城市之间的火车票的价
  • 区块链技术在日常生活有那些影响?

    区块链首先是一种社会思潮 它预示着人类社会转型 换代的新时代的到来 区块链的技术基础是分布式网络架构 正是因为分布式网络技术的成熟 去中心 弱中心 分中心及共享 共识 共担的组织架构 商业架构和社会架构才有可能有效建立起来 大概就是从工程技
  • js实现约瑟夫问题(数目的游戏问题编程)

    17世纪的法国数学家加斯帕在 数目的游戏问题 中讲了这样一个故事 15个教徒和15 个非教徒在深海上遇险 必须将一半的人投入海中 其余的人才能幸免于难 于是想了一个办法 30个人围成一圆圈 从第一个人开始依次报数 每数到第九个人就将他扔入大
  • 将一个整数逆序输出·正序输出它的每一位数字

    逆序输出n的每位数字 void PrintReverse int n 定义一个函数 他的数据类型为整型 if n lt 0 printf n n 对于负数的整数 改变输出 的多少 do printf d n 10 当n不等于0时 n对10取
  • JAVA不可达代码

    说明这句代码之前有一个死循环 解决方法 一般是需要将代码放入死循环代码中 并设定一个停止循环代码的条件
  • golang jsoniter extension 处理动态字段

    1 背景 golang 原生 json 包 在处理 json 对象的字段的时候 是需要严格匹配类型的 但是 实际上 当我们与一些老系统或者脚本语言的系统对接的时候 有时候需要对类型需要做一下兼容 假设我们有以下需求 目标类型 输入 解析后
  • 图灵奖得主Judea Pearl:因果推断论文本周推荐(2022.8.8)

    刚刚 图灵奖得主 因果科学之父Judea Pearl 在推特上推荐了本周值得一读的10篇近期发表的因果推断相关论文 推荐列表下载 他评价道 他看到了人们对于 公平 责任 主题的兴趣日益浓厚 为帮助大家快速了解这些文章的主旨内容 我将推荐列表
  • python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

    python爬虫 Scrapy框架 Scrapy selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段 对使用scrapy selenium进行政策文本爬虫进行记录 用于个人爬虫学习记录 可供参考 由于近期较忙 记录得较粗糙 望
  • Windows10中Anaconda3安装手动设置环境变量以及安装pymysql

    安装Anaconda3时 在这一步 要把上面的设置环境变量勾选 这里由于我不想再卸载安装一次 所以是从网上找的图 这样安装好是没有问题的 如果我们没有勾选这个选项 那就需要我们手动配置环境变量了 首先点击win 找到Anaconde3的安装
  • 一、Confluence版本概述+服务器要求+安装前系统规划

    文章目录 一 Confluence版本概述 二 服务器要求 1 操作系统 2 硬件需求 3 云服务器推荐 三 安装前系统规划 整个安装过程将涉及到的目录 Linux系统 一 Confluence版本概述 Confluence根据安装方式来分
  • 重装Ubuntu系统(单系统)

    更新nvidia驱动后 重启电脑 无法打开 黑屏并且只有左上角有横杠闪烁 网上方法都不成功 于是决定重装系统 一 保存文件 1 开机并插入U盘 在黑屏界面 ctrl alt F1进入tty 输入用户账号密码进入 2 查看磁盘信息df命令 仅
  • Ubuntu18.04安装jdk1.8

    1 卸载Ubuntu18 04自带的openjdk Ubuntu18 04系统一般是自带openjdk的 首先要卸载openjdk然后再安装自己的jdk sudo apt get remove openjdk 2 Oracle官网下载jdk
  • Java自动化测试面向对象之package

    Java自动化测试面向对象之package 文章目录 Java自动化测试面向对象之package Java 包 package Java 包 package 为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 包的作用 1 把
  • vue3 自定义组件 v-model 原理解析

    1 input 中的 v model
  • 史诗级的突破,如何让GPT接口调用能绕过4000 tokens 的长度限制

    最近很高兴有机会较为全面深入地研究GPT ChatGPT这一热门技术 学到了不少东西 当然也遇到不少问题 其中一个问题就是 所有的GPT模型 都会有输入输出长度 加起来 的限制这个问题 就好像一个紧箍咒似的 我这段时间看到很多不同的一些办法
  • 过度绘制和渲染

    最近在解过度绘制的问题单时 对过度绘制和渲染进行了简要的学习 UI优化和UI渲染 UI 优化究竟指的是什么呢 应该包含两个方面 一个是效率的提升 我们可以非常高效地把 UI 的设计图转化成应用界面 在不同并且保证 UI 界面尺寸和分辨率的手
  • JMX经验点滴

    使用Java构建的大规模分布式架构网站 为了了解整个网站中的每个节点运行状况 在考虑性能 开发速度而不考虑多开发语言支持的情况下 JMX无疑是最适合的方式 JMX Java 管理扩展 Java Management Extensions 是
  • 使用springcloud feign时 token认证

    我们在项目中使用feign进行调用时 往往需要进行身份验证 而feignclient需要按照http调用方的格式来书写 这时候呢 我们可以使用这种方式来进行加入身份验证 public class FeignConfig implements
  • tcp服务端通讯+按键发送协议

    import threading import socket import json import keyboard TCP服务器配置 HOST 0 0 0 0 PORT 8888 创建TCP服务端 server socket socket