winsock在数据到达时一次能接收多少字节,还是全部接受?
还有,winsock.senddata一次能接受多少字节
winsock.getdata 参数中的type如果为字节集要怎么写vb有字节集类型吗,参数len是指定发送数据的字节长度还是什么?有什么作用

解决方案 »

  1.   

    发送来的应该可以都接收的,winsock.senddata是发送数据,简单一点:每次读取部分数据,如果是TCP,个人建议使用64KB~4MB为大小从文件读取出来,然后进行send,完了(Overlapped方式,建议以完成通知为主,但是可以保留5到10个未决分片)再按该大小读取出来继续发送,发送完成为止,这样子相对来说,即使网络分网允许为64KB,那也可以达到相当高的利用率,并且也不至于过分由于网络速度慢,而把文件加载到内存后过多地非必要性地占用内存资源。对于UDP,这里就不再进行更多的建议,一切从简单开始。 
    suppose 数据在buffer内,长度为length 
    [code=C++] 
    int pos =0; 
    int result  
    while(pos  < length) 

        result = send(sd, buffer+pos, length -pos,0); 
        if(result > 0) 
        { 
           pos += result; 
        }else{// <=0就是失败 
             break; 
        };    
    } [/code] 
      

  2.   

    暂时找了两个贴子,供参考:
    http://topic.csdn.net/u/20080728/10/30c26698-5a3a-45ff-90b4-d661fdc2d868.html
    http://topic.csdn.net/u/20080729/17/ce04c7d4-6b52-4938-b065-3c5be5d1b86e.html