我要从winsock中接收大量数据进行写盘Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim strFilename As String
Dim bytData() As Byte
Dim iLenFile As Long
Dim iFreeFile As Integer
ReDim bytData(1 To bytesTotal)
Me.tcpClient.GetData bytData
strFilename = "c:\test.rar"
iFreeFile = FreeFile Open strFilename For Binary As #iFreeFile
iLenFile = LOF(iFreeFile)
If iLenFile = 0 Then
Put #iFreeFile, 1, bytData
Else
Put #iFreeFile, iLenFile + 1, bytData
End If
Close #iFreeFile
End Sub可是这个过程会导致系统象死机一样,请问doEvents 应该放在什么地方才好?
Dim strFilename As String
Dim bytData() As Byte
Dim iLenFile As Long
Dim iFreeFile As Integer
ReDim bytData(1 To bytesTotal)
Me.tcpClient.GetData bytData
strFilename = "c:\test.rar"
iFreeFile = FreeFile Open strFilename For Binary As #iFreeFile
iLenFile = LOF(iFreeFile)
If iLenFile = 0 Then
Put #iFreeFile, 1, bytData
Else
Put #iFreeFile, iLenFile + 1, bytData
End If
Close #iFreeFile
End Sub可是这个过程会导致系统象死机一样,请问doEvents 应该放在什么地方才好?
解决方案 »
- vb怎么打印存储过程返回的记录集
- VB中怎么做窗口伸缩
- vb怎样使用sendmessage()函数发送EM_gettextex消息时里面的wParam和lParam参数个代表什么意思?
- datalist与listview有什么区别?如何用datalist显示查询的内容?
- 满分求解
- 请问如何用api函数播放mpeg等视频文件,不用media player控件?
- 在设计表时用中文作为表名或域名好不好?
- updown控件是引用什么部件出来的?
- 88分求解,以后回答问题优先得分 如何通过adodc控件打开局域网中的access,odbc等数据库
- 我用printer对像中的 form1.printform ,有问题?
- 请问SQLSERVER中表间是否一定要事先建立关系,在SQL语句中用关联可不可以。谢谢.
- 一位生生生手想問關於過濾的問題
socket.senddata 后,
呵呵,我也遇到类似问题,开始我用字符串,发现打开文件后老是多了几个字节(过几天研究)
后来改用bytes,在本机上传文件累试不爽,最大文件传过600M,正常,但是一到局域网里就不对了
发现是数据发送的顺序和接受的顺序可能不一样,只好阻塞了。这样在每次发4k以下数据时正常,
超过就不对,比如 redim bytesData(1 to 8192),但用get 打开文件读数据时实际上只有4379个字节(我是用 “mod” 和 “/” 来得到次数和块大小来循环读数据的,不想用eof来判断)。我从数据库里读也有同样的问题(field.getchunk(8192))
请大家指教!