#!/usr/bin/python3
# coding:utf-8
import os
import socket
from http import HTTPStatus
import struct
import logging
from time import sleep
pa, pb = socket.socketpair()
pid = os.fork()
from socketserver import BaseRequestHandler, _SocketWriter
from werkzeug.serving import WSGIRequestHandler
def cpfd(fd):
msg = [b'x']
# 辅助数据,携带描述符
ancdata = [(
socket.SOL_SOCKET,
socket.SCM_RIGHTS,
struct.pack('i', fd.fileno()))]
print('front send fd',msg, ancdata)
s = pb.sendmsg(msg, ancdata)
class IWSGIRequestHandler(WSGIRequestHandler):
【代码】flask通过uds传输socket描述符实践
最新推荐文章于 2024-12-03 17:27:05 发布
本文介绍了在Flask应用中如何通过Unix Domain Socket (UDS) 实现Socket描述符的传递。实践中遇到的问题包括:accept进程在发送描述符前不能先recv数据,否则handle线程可能读不到数据;accept进程发送描述符后退出,可能导致TCP连接处于close wait状态,影响数据传输。总结指出,为了保证数据一致性,accept和handle进程的职责应分开,接受连接和读写数据应由不同的进程处理。

最低0.47元/天 解锁文章
862

被折叠的 条评论
为什么被折叠?



