程序描述:用一个 新的线程 循环接收服务器发来的数据,
伪代码大概是这样的
char * buffer = new char[1024];
while(true)
{
接收的长度 = recv(buffer);}这里如果没有数据recv应该被block ,
而且buffer的长度肯定是够的,
所以也就是一次能返回所有接收的字节;Debug模式下 调试运行(正常) , 运行不调试(正常)
Release 模式下 调试运行(正常) ,运行不调试(recv返回多次,而且每次只返回很少的字节数)请问到底是什么地方出了问题?
多线程的问题还是socket还是其他什么???
伪代码大概是这样的
char * buffer = new char[1024];
while(true)
{
接收的长度 = recv(buffer);}这里如果没有数据recv应该被block ,
而且buffer的长度肯定是够的,
所以也就是一次能返回所有接收的字节;Debug模式下 调试运行(正常) , 运行不调试(正常)
Release 模式下 调试运行(正常) ,运行不调试(recv返回多次,而且每次只返回很少的字节数)请问到底是什么地方出了问题?
多线程的问题还是socket还是其他什么???
假设服务器这次发送1000个字节,如果网络状况不好的话,客户端可能会将这1000个字节分几次接收, 所以貌似程序没有多大问题