i'm try to send many picture using socket programming in VB 2005 from client to server. but, after i run the program, only the first picture that reach destination server. and there is an error saying that my socket are no longer connected after the first picture are sent.
client side : ---> sender
at(0) -----> number of file that I want to send
at(3) n at(6) -----> file name address that I want to send
i = 1
Dim x As Integer
Dim z As Integer = 3
If at(3) <> Nothing And at(6) <> Nothing Then
x = at(0) + 1
For var = i To x
Dim PACKET_SIZE As UInt16 = 4096
Dim ByteArray() As Byte ' Data buffer
Dim filestream As FileStream = New FileStream(at(z), FileMode.Open, FileAccess.Read)
Dim Reader As New BinaryReader(filestream)
Dim Writer As New BinaryWriter(clientSocke.GetStream) ' Get socket's stream
'send size of file
Writer.Write(CInt(filestream.Length))
'Send the file data
Do
'read data from file
ByteArray = Reader.ReadBytes(PACKET_SIZE)
'write data to Network Stream
Writer.Write(ByteArray)
Loop While ByteArray.Length = PACKET_SIZE
'make sure all data is sent
Writer.Flush()
z = z + 3
Writer.Close()
Reader.Close()
Next
end if
Server side : ------> receiver
arrayteks(0) -----> number of file that I want to receive
arrayteks(3) n arrayteks(6) -----> file name address where I want save the received file
Dim x As Integer
Dim z As Integer = 3
If arrayTeks(3) <> Nothing And arrayTeks(6) <> Nothing Then
x = arrayTeks(0) + 1
For var = i To x
Dim PACKET_SIZE As UInt16 = 4096
Dim Reader As BinaryReader
Dim ReadBuffer(PACKET_SIZE - 1) As Byte
Dim NData As Int32
Dim MStream As MemoryStream
Dim LData As Int32
Reader = New BinaryReader(clientSocket.GetStream)
' Read Length of data (Int32)
NData = Reader.ReadInt32
' Now comes the data, save it in a memory stream
MStream = New MemoryStream
While NData > 0
LData = clientSocket.GetStream.Read(ReadBuffer, 0, PACKET_SIZE)
MStream.Write(ReadBuffer, 0, LData)
NData -= LData
End While
SaveFile(arrayTeks(z), MStream.ToArray, False) 'Then
z = z + 3
Next
end if
many thanks before...