我用WINSOCK 的一个封装类做了个文件传送器.速度非常快,可老有堆栈空间溢出的问题.用WINSOCK控件就没问题.不知道怎么搞嘀...这个类是CSockMaster.相信你也用过吧?这个问题的片段如下  ublic Function SendChunk() 'This is where we send the file data Dim ChunkSize As Long Dim Chunk() As Byte Dim arrHash() As Byte 'If wsSend.State <> sckConnected Then Exit Function ChunkSize = FT_BUFFER_SIZE If FileNum = 0 Then 'No data has been sent yet, open the file FileNum = FreeFile Open CCTV For Binary As #FileNum End If 'determine chunk size If (LOF(FileNum) - Loc(FileNum)) < FT_BUFFER_SIZE Then _ ChunkSize = (LOF(FileNum) - Loc(FileNum)) 'set array size to fit chunk ReDim Chunk(0 To ChunkSize - 1) 'read the chunk Get #FileNum, , Chunk 'Send the data Sentbyt = Sentbyt + ChunkSize ByteSec = ByteSec + ChunkSize 'See if file is sent If Sentbyt = FileSize Then Complete = True Close #FileNum cmdCancelClose.Caption = "&Close" End If wsSend.SendData Chunk End Function Private Sub wsSend_SendComplete() 'DoEvents If FileNum > 0 Then If Not Complete Then SendChunk Else If chkClose.Value = Checked Then wsSend.CloseSck Unload Me End If End If End If End Sub 不道有什么能解决的办法否?附上源码....
[此贴子已经被作者于2008-3-19 16:43:35编辑过] |