TCP发送队列深度
如何发现有多少字节已发送到TCP套接字,但尚未连接 请看下面的图表:TCP发送队列深度,tcp,network-programming,Tcp,Network Programming,如何发现有多少字节已发送到TCP套接字,但尚未连接 请看下面的图表: 我想知道第2类、第3类和第4类的总数,或者第3类和第4类的总数。这是在C++中以及Windows和Linux上实现的。理想情况下,我可以使用ioctl,但似乎没有 某些Unix版本可能有一种API方法来实现这一点,但是没有一种方法可以跨不同的变体进行移植。在Linux下,请参阅tcp手册页(7) 似乎可以通过ioctl(sock,SIOCINQ TCP_INFO getsockopt()调用返回的结构成员可能会提供其他统计信
我想知道第2类、第3类和第4类的总数,或者第3类和第4类的总数。这是在C++中以及Windows和Linux上实现的。理想情况下,我可以使用ioctl,但似乎没有 某些Unix版本可能有一种API方法来实现这一点,但是没有一种方法可以跨不同的变体进行移植。在Linux下,请参阅tcp手册页(7) 似乎可以通过ioctl(sock,SIOCINQ
TCP_INFO getsockopt()调用返回的结构成员可能会提供其他统计信息。如果要确定是否添加数据:别担心,send将一直阻止,直到数据进入队列。如果不想阻止,可以告诉它发送(2): 但这只适用于Linux 您还可以将套接字设置为非阻塞:
fcntl(socket, F_SETFD, O_NONBLOCK);
这种写入方式将返回一个错误(EAGAIN)如果无法将数据写入流。您想完成什么?如果知道当前问题,也许有人可以提供帮助。我正在尝试确定是向队列添加更多数据还是合并更新。由于传入数据速率远高于传出数据速率,我很容易使缓冲区和网络溢出。但是,我会以牺牲用户体验为代价保留一些更新。
fcntl(socket, F_SETFD, O_NONBLOCK);