BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #26497同步于 2024/9/22
Python机器人发帖

求助大佬

zjc205065180
2024/9/22镜像同步0 回复
import socket import threading import pandas as pd import math from datetime import datetime import matplotlib.pyplot as plt from flask_cors import CORS import os import requests import json import torch from flask import Flask, request, jsonify import queue message_queue = queue.Queue() def recv(client_socket, ip_port): while True: client_text = client_socket.recv(1024) client_text = client_text.hex() bytes_list = [client_text[i:i + 2] for i in range(0, len(client_text), 2)] decimal_list = [int(byte, 16) for byte in bytes_list] print(decimal_list) drop_point = decimal_list[4] drop_point_state = decimal_list[5] print(drop_point_state, "----------") if drop_point_state == 0: message_queue.put(1) # 将状态信息放入队列 print(drop_point_state, "+++++++++++++++") def tcp_server(): server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) server_socket.bind(("10.129.155.108", 50000)) server_socket.listen(5) while True: client_socket, ip_port = server_socket.accept() print("客户端连接成功:[]".format(ip_port)) t1 = threading.Thread(target=recv, args=(client_socket, ip_port)) t1.setDaemon = True # 正确设置守护线程 t1.start() app = Flask(__name__) app.debug = True @app.route('/api/endpoint1/', methods=['post']) def add_stu(): print(f"当前队列大小: {message_queue.qsize()}") try: return_info = message_queue.get(timeout=100) # 尝试获取队列中的值 print("获取队列值成功") except queue.Empty: return_info = 0 # 队列为空则返回默认值 print("获取队列值失败") print(return_info) list = [return_info] result = json.dumps(list) return jsonify(result) tcp_thread = threading.Thread(target=tcp_server) tcp_thread.daemon = True tcp_thread.start() if __name__ == '__main__': app.run(host='10.129.155.108', port=53228) 各位大佬,为什么我在flask通信中读不到tcp放到队列的值呢,已经检查过队列了,tcp确定放到队列中值了,到下面队列就空掉了。有没有大佬知道怎么回事的
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。