Skip to content

tquic 多次发送数据异常 #303

Discussion options

You must be logged in to vote

根据您提供的代码和描述,您尝试在客户端发送多次命令给服务器,但数据只能被接受一次。以下是一些可能的原因和解决方案:

  1. Stream ID 重用问题
    您在两次 quic_stream_write 调用中都使用了相同的 stream_id(即0)。在 QUIC 协议中,每个流(stream)应该有一个唯一的 ID。您需要为每个新的请求创建一个新的流。

    void client_on_conn_established(void *tctx, struct quic_conn_t *conn) {
        const char *data = "GET one  /\r\n";
        quic_stream_write(conn, 0, (uint8_t *)data, strlen(data), true);
    
        const char *data1 = "GET  two /\r\n";
        quic_stream_write(conn, 1, (uint8_t *)data1, strlen(data1), true); // 使用不同的 stream_id
        printf("\r\n[send] %s\r\n", data);
    }
  2. 流的关闭
    在您的代码中,您在每次 quic_stream_write 调用中都将 fin 参数设置为 true,这表示这是流的最后一部分数据。您可以尝试将 fin 参数设置为 false,以便流保持打开状态,直到您明确关闭它。

    void client_on_conn_established(void *tctx, struct

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by lion117
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant