in the server code, if I take out the MsgBox(FileReader.BaseStream.Length) the client freezes, and the filesize of the transfered file is less then the complete file size. Line 10

here is the server sub
vb Code:
  1. Private Sub SendAFile(ByVal FileName As String, ByVal WhichClient As Integer)
  2.         'file path C:\Documents and Settings\Owner\Desktop\Ya Ali - Ringtone.mp3
  3.         Dim FileReader As IO.BinaryReader
  4.         Dim Fs As IO.FileStream
  5.         Dim LastBytes
  6.         If File.Exists(FileName) Then
  7.             Fs = New IO.FileStream(FileName, FileMode.Open)
  8.             FileReader = New IO.BinaryReader(Fs)
  9.             SendMessage(FileName & "-|-" & FileReader.BaseStream.Length, "<<SERVER>>", "FileTransfer:", WhichClient)
  10.             MsgBox(FileReader.BaseStream.Length)
  11.             SyncLock Clients(WhichClient).DataStream
  12.                 Do While FileReader.BaseStream.Position < FileReader.BaseStream.Length
  13.                     If FileReader.BaseStream.Position + 8 > FileReader.BaseStream.Length Then
  14.                         LastBytes = FileReader.BaseStream.Length - FileReader.BaseStream.Position
  15.                     Else
  16.                         LastBytes = 8
  17.                     End If
  18.                     Clients(WhichClient).DataStream.Write(FileReader.ReadBytes(LastBytes), 0, LastBytes)
  19.                 Loop
  20.             End SyncLock
  21.             FileReader.BaseStream.Dispose()
  22.             FileReader.Close()
  23.             Fs.Dispose()
  24.             Fs.Close()
  25.         Else
  26.             MessageBox.Show("The File: " & FileName & " does not exist")
  27.         End If
  28.  
  29.     End Sub


here is the client sub
vb Code:
  1. Private Sub ReceiveAChunk(ByVal MyData As String)
  2.         'file path C:\Documents and Settings\Owner\Desktop\Ya Ali - Ringtone.mp3
  3.         If MyFileInfo.FileSize = 0 Then
  4.             Dim TempString() As String
  5.             TempString = Split(MyData, "-|-")
  6.             'MyData current format
  7.             'Filename -|- Length
  8.             MyFileInfo.FileName = TempString(0)
  9.             MyFileInfo.FileName = Mid(MyFileInfo.FileName, InStrRev(MyFileInfo.FileName, "\"))
  10.             MyFileInfo.FileName = Application.StartupPath & MyFileInfo.FileName
  11.             MyFileInfo.FileSize = Val(TempString(1))
  12.             MsgBox(MyFileInfo.FileName & vbNewLine & "File Length:" & MyFileInfo.FileSize)
  13.             MyFileInfo.Transfering = True
  14.         End If
  15.  
  16.         Dim Filewriter As IO.BinaryWriter
  17.         Dim Fs As IO.FileStream
  18.         If File.Exists(MyFileInfo.FileName) Then
  19.             MsgBox("File exists")
  20.         Else
  21.             Fs = New IO.FileStream(MyFileInfo.FileName, FileMode.CreateNew)
  22.             Filewriter = New IO.BinaryWriter(Fs)
  23.  
  24.             Dim MyBytes(8) As Byte
  25.             Dim I As Integer
  26.             Dim LastBytes As Integer
  27.             SyncLock MyDataStream
  28.                 For MyFileInfo.BytesReceived = 0 To MyFileInfo.FileSize Step 8
  29.                     MyDataStream.Read(MyBytes, 0, 8)
  30.                     If MyFileInfo.BytesReceived + 8 > MyFileInfo.FileSize Then
  31.                         LastBytes = MyFileInfo.FileSize - MyFileInfo.BytesReceived
  32.                     Else
  33.                         LastBytes = 8
  34.                     End If
  35.                     For I = 0 To LastBytes - 1 Step 1
  36.                         Filewriter.BaseStream.WriteByte(MyBytes(I))
  37.                     Next
  38.                 Next
  39.                 MsgBox(" I guess were done?")
  40.             End SyncLock
  41.             Filewriter.BaseStream.Dispose()
  42.             Filewriter.Close()
  43.             Fs.Dispose()
  44.             Fs.Close()
  45.             MyFileInfo.Transfering = False
  46.         End If
  47.         'Else
  48.         'MessageBox.Show("The File: " & FileName & " does not exist")
  49.         'End If
  50.  
  51.     End Sub