gpt4 book ai didi

c - Linux, C : IPv6 socket: write blocks

转载 作者:可可西里 更新时间:2023-11-01 02:51:32 25 4
gpt4 key购买 nike

我有服务器和客户端应用程序,在 Ubuntu1410 默认内核上以 IPv6 运行。

服务:socket 监听本地 TCP 端口并使用 select() 处理新的连接和数据;

客户端:socket通过TCP连接服务器IPv6地址和端口。

可以成功建立连接。但是,当 write() 数据时,缓冲区大小为 128K,它会阻塞在 write() 中。

因为我需要写入很多数据,所以我有一个 for 循环来调用 write()。有时,write() 会成功一两次,但随后又会阻塞。

我的应用支持 IPv4 和 Ipv6。 write() 适用于 IPv4。

而且,如果我在::1 上测试(服务器和客户端在同一台机器上运行),IPv6 也可以工作。

r = write(fd, buf, buf_size);

最佳答案

如果 TCP 发送 block ,接收方读取速度较慢。

关于c - Linux, C : IPv6 socket: write blocks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32386307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com