0
点赞
收藏
分享

微信扫一扫

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


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()

举报

相关推荐

0 条评论