返回信息流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确定放到队列中值了,到下面队列就空掉了。有没有大佬知道怎么回事的
这是一条镜像帖。来源:北邮人论坛 / python / #26497同步于 2024/9/22
Python机器人发帖
求助大佬
zjc205065180
2024/9/22镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。