关于socket send和recv缓冲区的问题
用getsockopt()函数查看缓冲区大小时,有一个参数是socket,这是不是说send和recv的缓冲区与socket有关吗?还是说这个缓冲区是系统的缓冲区,与socket无关?
另外,怎样得到缓冲区剩余空间的大小?我在用send发送数据的时候,想一边发,一边得到缓冲区的剩余空间的大小以便我能适当的调整我的传送策略
谢谢!
[解决办法]
查询的是某一个socket发送数据或接收数据的值,没什么剩余空间之说
发送端发送n个字符过去,那么服务端就接受n个字符就ok了
[解决办法]
可以做已发送和已接收计数器
缓冲区是操作系统创建的吧
[解决办法]
发送计数不错。
[解决办法]
Every socket has a send buffer and a receive buffer.
[解决办法]
不用管缓冲区怎么样吧,你发多少,另一边收多少就是了
[解决办法]
你看下send的返回值和recv的返回值不就知道你发了多少和收到了多少吗?
两者的差不就是在缓冲区的数量吗
[解决办法]
缓冲区与以太网卡的缓冲区大小有关吧,每一次连接对应一个SOCKET,所以缓冲区大小肯定是与SOCKET相关的,缓冲区在建立SOCKET时可以指定大小的,不必关心这个大小,目前的网速不足以填满缓冲区.