yuekunjava 发表于 2016-04-10 22:15

请教如何知道发往socket缓冲区的数据真正发出去了

并不需要知道是否被对端收到,想统计一段时间内真正发出去的字节数查了下有hooktcp发送函数的sock结构体有个wmem_alloc这个成员的具体含义是什么 是累计的发送字节数吗还有没其它方法比如getsockopt获取tcp_info中的值统计?谢谢各位啊

yuekunjava 发表于 2016-04-10 22:43

补充下是非阻塞socket

脚丫子1987 发表于 2016-04-11 10:29

#define YXZBSENDMAX 1024
nsockon = YXZBSENDMAX;
setsockopt( nsock_fd, SOL_SOCKET, SO_SNDBUF, &nsockon, sizeof(nsockon) );
setsockopt( nsock_fd, SOL_SOCKET, SO_SNDLOWAT, &nsockon, sizeof(nsockon) );

配合select 检查是否可读   我是这么实现的不知道能不能满足你的需求

脚丫子1987 发表于 2016-04-11 10:30

我这是unix   linux平台好像可以直接设置发送超时状态

IanFang 发表于 2016-04-27 11:11

为什么会有这种需求??wmem_alloc和SO_SNDLOWAT无法做到。
页: [1]
查看完整版本: 请教如何知道发往socket缓冲区的数据真正发出去了