我用的是CSocket,实现了,也不太稳定,但在局域网上基本没为题,开始我也是发方循环发送,我认为这样不行,应该在收方收到一个块后,向发方要下一个块,你如果感兴趣,我把代码发给你,winsock我不太熟,据说比CSocket好,我为了赶活,用了CSocket,能不能交流一下?我的email是:[email protected](注意:最后一个字母是“零”而非“噢”)。
调试欢乐多
用到了api,CopyMemory()函数。
是不是vb太恶心了!
网络很忙时,send(buf,100);在recv(buf)时可能=40。
网络很空时,client端send(buf,100);send(buf,100);两次,
recv(buf)=200一次就接受完也是有可能的。所以,不能以为send两次
就一定可以recv两次。recv多次也是有可能的。而且,每次的数据不一定
等于发送的数据。所以,千万不要这样:
recv(buf);
if(buf=="end")
closesocket(s);
这样就会一不小心cut socket,或者永远cut不了。