mscomm怎样传输图片,怎样分段接收

解决方案 »

  1.   

    使用2进制方式读取图片文件储存在JPG()里面!
        然后发送的时候还是常规方法发送JPG()数组在接收方面:
       dim s as long
      把接收到完整的数据储存在jpg()里面  open "D:\xx.jpg" for binary as #1
            put #1,,jpg()
       close
        
    这样就可以打开xx.jpg
      

  2.   

    mscomm可以发送字节数组,将jpg读入字节数组,直接发送即可
      

  3.   

    同上    发送:读取图片数据,存到字节型数组pic()里,然后发送pic()
        接受:把接收到的数据存入字节型数组pic()里,然后把pic()的数据写入文件
        
        
        读取图片数据,存到字节型数组pic()里:
        Dim strFile As String, pic() As Byte, lngFile As Long
        strFile = "c:\test.jpg"
        lngFile = FreeFile
        Open strFile For Binary As #lngFile
        ReDim pic(LOF(lngFile))
        Get #lngFile, , pic
        Close #lngFile
        
        把数组pic()的数据写到文件里:
        Open strFile For Binary As #1
        Put #1, , pic
        Close #1
      

  4.   

    现在有个问题是,mscomm一次不能接收所有的字节,
      

  5.   

    你想要的在这里一次行传输及分包传输:
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=205277
      

  6.   

    传送图片和传送其他数据没有什么区别。注意:1 采用二进制方式传送。即接收方设置 InputMode = comInputModeBinary。
    2 发送方读取图片数据(例如以二进制方式打开数据文件),可以任意分段。例如采用 Get 语句取得指定偏移的一定长度数据到 Byte 数组。此长度不要超过接收方接收缓冲区的设置值。
    3 最好采用包方式传输,即加上起始字符、包序号、数据长度以及报尾的 EDC 码。
    4 接收方要声明一个 Variant 型的变量取得 Input 数据,再赋值给 Byte 数组。可以先接受包头,得到数据长度后,连续接收至 EDC 码。