关于网友提出的“ socket 中的sends,buffer,length,flags中的length会发送给服务器作为较证吗?”问题疑问,本网通过在网上对“ socket 中的sends,buffer,length,flags中的length会发送给服务器作为较证吗?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: socket 中的sends,buffer,length,flags中的length会发送给服务器作为较证吗?描述:
麻烦大家了。
解决方案1:
其实这中认证方法是不可靠的。
其一是Nagle算法
第二是阻塞
当然不会了,从底层看,发送出去的是TCP/IP数据包格式,send函数中的length参数只是作为本机上相关操作使用的,比如确定发送的缓冲等等。
解决方案3:不会~因为send只是把程序缓冲区的内容送入系统缓冲区,发送成功多少要看返回的数据~
解决方案4: 是的
如使用CAsyncSocket类
则可以使用IOCtl()来获得length, 因此sdk也有类似的函数可以获得length
int GetLen()
{
DWORD dwDataAmount;
if(IOCtl(FIONREAD,&dwDataAmount))
return dwDataAmount;
return ERROR;
}