to: 楼上的兄弟
   可是不行呀,我试过了 我不知道为什么不行。文件可以传过来,但是格式不对。但是文本传的时候是正确的。用excel就不行。高手快来呀。

解决方案 »

  1.   

    可以的呀
    用下面代码发送
    Dim bindata() As Byte
    Open FileName For Binary As #1
    ReDim bindata(LOF(1))
    Get #1, 1, bindate
    Close #1
    Winsock1.SendData bindate
    用下面代码读
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim bindata() As Byte
    Winsock1.GetData bindata, vbByte
    Open FileName For Binary As #1
    Put #1, 1, bindate
    Close #1
    End Sub
      

  2.   

    你这样子做的话,很容易丢包的.我是这样做的:
    发送端:用Binary以Read方式打开文件,然后每1000字节送一次(不能太大,2000以上容易丢包),不发完不关闭文件;
    接收端:用Binary以Write方式建立文件,接收到发送端的数据后写入文件(也是不收完不关闭文件),然后回个发送端一个继续发送的信息;
    发送端:收到接收端的信息后继续下1000个字节的发送;直至发完.我有现成的程序,现正在使用中,如有需要,请与我联系[email protected]
      

  3.   

    to heng_s(渣渣) 
      我也发现这个问题了,最大好象是一次8k的传输量。我现在正在解决这个问题,不过你的思路很好,不过可能在远距离 传输时速度会有很大的影响。不知道还有没有别的解决思路
      

  4.   

    8k是Winsock控件支持的最大传输量,超过了也能传,接收端会产生两次DataArrived事件.你提的问题我以前想到过,我曾经试过将传输量改为4000字节,结果丢包的机率较大,所以又改了回来,因此我建议你,如果你要用Winsock传输的话,最好不要超过2000字节.不可否认速度确实慢了点,但是由于我的程序是个全自动的,不需要人工干预,所以我宁愿牺牲速度来满足稳定:)如果你找到什么更好的方法,请多多指教.
      

  5.   

    to heng_s(渣渣) 
        我用你方法写了一个,文件的字节数和原来一样,但是占用的空间却大了很多。不知道是什么原因。
      

  6.   

    我的信箱是 [email protected]
      

  7.   

    打扰各位了,一道难题 ,谢谢。http://www.csdn.net/Expert/topic/479/479295.shtm