cuốn sách gpt4 ai đã làm

c - 为什么不在 tcp 的情况下重用消息缓冲区

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 02:41:22 hai mươi bốn 4
mua khóa gpt4 Nike

我看到许多开源框架和 tcp/ip 的最佳实践建议永远不要重用您已交给 tcp 层进行传输的缓冲区。其背后的原因是什么?缓冲区只是简单地复制到内核中不是真的吗,那么关于不重用缓冲区的错误是什么?上面的一个典型例子是

char data[1024] = {'1', '2'.................'1024'};
write(socket, data, 1024);
data = {'a', 'b','c'...........}; //reusing the buffer

ZeroMQ 提供了创建缓冲区和删除缓冲区的 API,他们强烈建议不要使用它。 Netperf 创建一个环形缓冲区并确保它永远不会重复使用它当前写入套接字的缓冲区。

câu trả lời hay nhất

write()send() 都会将您的数据复制到 TCP“发送窗口”,因此您不必担心在程序中更改它在那些电话之后。但是请注意,非阻塞套接字可能不会复制tất cả您的数据,因此您应该检查返回代码以找出实际写入了多少字节。

有可能某些自定义 TCP 堆栈(可能用于非常小的嵌入式系统)需要数据保留,但主流操作系统都不需要这样。

关于c - 为什么不在 tcp 的情况下重用消息缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476670/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress