我想实现两台机器间的大量数据传输
问题:
(1)socket一次的传输上届
(2)我在服务器端向客户发
m_ser.Send(ptr,768*576);
在客户端接受如下
***::OnReceive()
{
if(len<768*576)
{
len+=m_cli.Receive(recv,1024);
}
else
{
*(recv+len)='\0';
}
}
============>第一次传输可以实现,以后就不行了,界面死掉
是不是涉及到缓冲????
请多帮助我吧!
问题:
(1)socket一次的传输上届
(2)我在服务器端向客户发
m_ser.Send(ptr,768*576);
在客户端接受如下
***::OnReceive()
{
if(len<768*576)
{
len+=m_cli.Receive(recv,1024);
}
else
{
*(recv+len)='\0';
}
}
============>第一次传输可以实现,以后就不行了,界面死掉
是不是涉及到缓冲????
请多帮助我吧!
客户端是先接受数据长度,然后再多次接受剩余的数据
发现:服务器端点击发送后,客户端在接受到长度=96256时,
客户端不再接受,服务器再点击发送,客户端才会把剩下的数据
接受完毕,但是第二次发送的数据又不再接受了,以后服务器就
无法发送数据了改正一个地方
len+=m_cli.Receive(recv+len*sizeof(BYTE),1024);
每次把接收到的数据复制到一个缓冲区,如果到达一个数据包的最大长度
则发送一个接受完成一个数据包的消息,如果在最后一次接收到的数据有多余的则放到另一个缓冲区作为一个新的数据包的开始数据