You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历列表时误标记已存在项的UDP Chunk重传问题

UDP Chunk重传逻辑异常:已接收Chunk被误标记为缺失

我需要从指定索引开始遍历列表(未遍历至末尾),检查元素是否为None(未接收)或已设置正确的chunk编号,以此确认UDP数据包是否送达;若存在缺失项,则请求重传对应chunk。但当前记录缺失项的tcp_temp_chunks列表中,却包含了实际已存在于chunklist中的项。


相关代码

if response["type"] == "chunk":
    chunks = response["chunk"]
    tcp_temp_chunks = []
    #tcp_temp_chunks.extend(chunks)
    #constantly check chunklist to see if the chunks ever got recived over udp
    time_started = time.time()
    tcp_temp_chunks = []
    while 1:
        tcp_temp_chunks.clear()
        start_index = response["chunk"][0]
        end_index = response["chunk"][-1]
        for i in range(start_index, end_index):
            chunk = fileupload.chunklist[i]
            if chunk is None:
                tcp_temp_chunks.append(i - start_index)

            if len(tcp_temp_chunks) > 0:
                if int((time.time() - time_started) * 1000) > 900:
                    print(tcp_temp_chunks)
                    retransmit = {"type": "retransmit", "chunk": tcp_temp_chunks}
                    tcp_socket.sendall(json.dumps(retransmit).encode())
                    print("Sent retransmit")
                    print(fileupload.chunklist[:100])
                    tcp_temp_chunks = []  # reset tcp_temp_chunks after sending retransmit
                    time_started = time.time()
                    continue
            else:
                chunk_ack = {"type": "chunkack", "chunk": chunks[-1]}
                print("a23423")
                tcp_socket.sendall(json.dumps(chunk_ack).encode())
                break

变量说明

  • response["chunk"]:chunk编号列表,示例格式:{'type': 'chunk', 'chunk': [100, 101, 102,...]}
  • chunklist:全局变量,初始填充与待发送chunk数量一致的None,接收到chunk时会将对应位置的None替换为chunk编号。

已尝试的方案

  • 使用enumerate遍历:enumerate(fileupload.chunklist[response["chunk"][0]:response["chunk"][-1]])
  • 使用while循环检查缺失项
  • 多次重写代码,但已记不清所有尝试细节

内容的提问来源于stack exchange,提问作者Soup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:27:17