各位大峡,小女子求救了,
远程计算机通过IP和端口发送音视频流到我的计算机上,我通过端口接受,现在已经可以把接受的数据放到变量中,可我现在怎么才能把变量中的数据写入文件啊
求求各位大哥,快帮帮我啊如何把变量中数据写入文件啊 ...

解决方案 »

  1.   

    Dim intFileNum As Integer
     dim strString as string
     strpath="C:\"
     If Dir(strPath & "文件.txt") <> "" Then
        Kill strPath & "文件.txt"
     End If 
     intFileNum = FreeFile
     Open strPath & "文件.txt" For Binary As #intFileNum
     Put #intFileNum, , strString 
     Close #intFileNum
      

  2.   

    谢谢楼上大峡啊,可还有点不明了,就是,我这里现在是硬件通过IP地址和端口发到我的端口
    它发来的是数据流啊,我怎么把它的流分段接受呢(我用SOCKET把数据流接受到变量里A,然后在把变量A内数据写入文件,下一步怎么办?因为A里还是原来的数据,怎么接受新的数据呢?)            小女子苦苦等待!!!!,望大峡助我!!!
      

  3.   

    你用什么收的???
    WinSock控件、Socket函数都是主动接收的
    前者用GetData,后者用recv
      

  4.   

    哦,我用winsock接受的啊,是这样的,对方一直不停的发数据流(摄象机采集的,硬件压缩并发送),你想,我接受到 变量中以后,在把变量中的数据写到文件,那么这之后,变量里的数据会自动更新吗? 
              好郁闷啊,大挟们能发点代码看看吗,救救我...., 感谢了......
      

  5.   

    小女子表达的不太到位,再补充一下,我用winsock接受的,对方一直不停的发数据流(摄象机采集的,硬件压缩并发送),问题就是我怎么连续接收数据流并切写入文件呢
                  再谢各位大侠!!!
      

  6.   

    以下是小女子根据各位说的写的东东
    老是报错“错误的文件名或号码”,各位帮我分析一下,这样可以吗,错误原因是什么?
       在这里多谢 zyguyue(何必何苦) ,他已经帮我答了两次了
    Private Sub Form_Load()
    'Winsock 是控件的名字 udppeera
      With udppeera
            .Protocol = sckUDPProtocol
            .LocalPort = 5000
            .Bind
      End With
    End SubPrivate Sub udppeera_DataArrival(ByVal bytesTotal As Long)
      Dim strString As String
      Dim char As Byte
      Dim filenum1 As Integer
      Dim buffer() As Byte
      udppeera.GetData strdata, vbArray + vbByte
      strPath = "f:\"
     If Dir(strPath & "wpg.mpg") <> "" Then
        Kill strPath & "wpg.mpg"
     End If
     Open strPath & "wpg.mpg" For Binary As #filenum1
     Put #filenum1, , strdata
    Close #filenum1
    End Sub
      

  7.   

    sub loop()
       filenum1=freefile
       Open strPath & "wpg.mpg" For Binary As #filenum1
       while .t.
         udppeera_DataArrival(filenum1)
       loop
       Close #filenum1
    end subPrivate Sub udppeera_DataArrival(filenum1 as int..)
      Dim strString As String
      Dim buffer() As Byte
      udppeera.GetData buffer, vbArray + vbByte
      strString =buffer
      Put #filenum1, , strString 
    End Sub
      

  8.   

    补充:上面代码我加了filenum1=freefile后,可以运行了,但是保存下来的文件只有1.29K,S是怎么回事啊,真不知道怎么办了 。
      

  9.   

    各位大侠,小女子按照你们的指点,终于可以保存文件了,但是保存的文件无法播放视频,而且文件大的出奇,20秒钟就有一个G了,以下是代码,快帮帮我,看问题出在那里啊
    Private Sub Form_Load()
    'Winsock 是控件的名字 udppeera
      With udppeera
            .Protocol = sckUDPProtocol
            .LocalPort = 5000
            .Bind
      End With
    End SubPrivate Sub udppeera_DataArrival(ByVal bytesTotal As Long)
      Dim char As Byte
      Dim filenum1 As Integer
      Dim buffer() As Byte
      udppeera.GetData strdata, vbArray + vbByte
      strPath = "f:\"
     If Dir(strPath & "wpg.mpg") <> "" Then
        Kill strPath & "wpg.mpg"
     End If
     filenum1 = FreeFile
     Open strPath & "wpg.mpg" For Binary As #filenum1
      strString = strdata
       Do While Not EOF(filenum1)
         Put #filenum1, , strString
       Loop
    Close #filenum1
    End Sub
      

  10.   

    你要不停的接收数据,就不要每次都用
    If Dir(strPath & "wpg.mpg") <> "" Then
        Kill strPath & "wpg.mpg"
     End If
    这句话了
    你要不停的往这个文件后加入数据
    先用变量存下原有文件数据后再kill掉文件
    然后与新接受到的数据组合后存入文件
    当然,这种方法操作mpg文件有无问题我不知道
    你可以做个测试,用二进制方式打开一个好的mpg文件然后写入另外一个文件测试一下
    或者再查查mpg文件操作的文档
      

  11.   

    这种方法操作mpg文件有问题!
    没有文件头视频不识别没有办法播放