用winsock的 
senddata先发过来一个文件大小(long型) 
senddata再发过来一个文件(byte型)请问如何用getdata获取该文件大小 并完整保持该文件?
为何先用getdata设置长度为4得到的值为0呢,再用getdata得到的文件也不对。

解决方案 »

  1.   

    文件长度(long)转换成4字节,然后以字节数组发送,到接收端再转成长整。
      

  2.   

    试了下  在接收端用字符串变量先getdata 通过下面的函数传给字节数组 得到的文件缺腿少胳膊 汗! 
    Call   CopyMemory(array(0),str,len(str))   
      

  3.   

    避免不了发四个字节,_DataArrival中bytesTotal不是四的情况
    最好将要发送的字节数组编码,比如Base64,然后用编码后不出现的某个字节作间隔发送
    接收方缓存收到的字节流,直到遇到间隔字节,然后解码。
      

  4.   


    直接发 Long 类型过来就可以了。接收端接到的 4 字节,低字节在前。自己组合一下就可以了。
      

  5.   

    我也在搞winsock,发现要通过winsock发个图片或者文件还真有点难度winsock的报文不固定,有时2个发送的内容在一次接收中都收下来了,很难区分开谁有一个完整的发送文件的Winsock例子啊,拜求需要能收到文件名,文件大小,还有对于一次发送不完的文件要多次发送完