I'm new to VB .net and still learning..... I have a tcp client and server that I'm trying to send a file from and get the file and filename from the host. It will send the file and everything but it's not correct because it's getting the ascii network stream. Any help would be greatly appreciated! Thanks!
Client:
For Each node In TreeView1.Nodes
For Each node1 In node.Nodes
If node1.Checked = True Then
End If
For Each node2 In node1.Nodes
If node2.Checked = True Then
intcounter = intcounter + 1
Dim filebuffer As Byte()
Dim filestream As Stream
filestream = File.OpenRead(tbFilename.Text)
ReDim filebuffer(filestream.Length)
filestream.Read(filebuffer, 0, filestream.Length)
Dim clientSocket As New TcpClient(node2.Text, 1234)
Dim networkStream As NetworkStream
networkStream = clientSocket.GetStream()
serverStream = clientSocket.GetStream()
Dim outStream As Byte() = System.Text.Encoding.ASCII.GetBytes(textbox1.text + "$")
serverStream.Write(outStream, 0, outStream.Length)
networkStream.Write(filebuffer, 0, filestream.Length)
End If
Next
Next
Next
Server:
handlerSocket = alSockets(alSockets.Count - 1)
Dim networkStream As NetworkStream = New NetworkStream(handlerSocket)
Dim blockSize As Int16 = 1024
Dim thisRead As Int16
Dim dataByte(blockSize) As Byte
SyncLock Me
Dim clientSocket As New TcpClient
Dim bytesFrom(10024) As Byte
Dim dataFromClient As String
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
clientsList(dataFromClient) = clientSocket
msg(dataFromClient + " Joined chat room ")
Dim SaveFileName As String = Nothing
Dim DialogSave As New SaveFileDialog
DialogSave.Filter = "All files (*.*)|*.*"
DialogSave.FileName = dataFromClient
DialogSave.RestoreDirectory = True
DialogSave.Title = "Where do you want to save the file?"
DialogSave.InitialDirectory = "C:/"
If DialogSave.ShowDialog() = DialogResult.OK Then
SaveFileName = DialogSave.FileName
End If
Dim filestream As FileStream
filestream = File.OpenWrite(SaveFileName)
While (True)
thisRead = networkStream.Read(dataByte, _
0, blockSize)
If thisRead = 0 Then Exit While
filestream.Write(dataByte, 0, thisRead)
End While
handlerSocket.Close()
filestream.Close()
End SyncLock
lbConnections.Items.Add("File Written")
handlerSocket = Nothing
Client:
For Each node In TreeView1.Nodes
For Each node1 In node.Nodes
If node1.Checked = True Then
End If
For Each node2 In node1.Nodes
If node2.Checked = True Then
intcounter = intcounter + 1
Dim filebuffer As Byte()
Dim filestream As Stream
filestream = File.OpenRead(tbFilename.Text)
ReDim filebuffer(filestream.Length)
filestream.Read(filebuffer, 0, filestream.Length)
Dim clientSocket As New TcpClient(node2.Text, 1234)
Dim networkStream As NetworkStream
networkStream = clientSocket.GetStream()
serverStream = clientSocket.GetStream()
Dim outStream As Byte() = System.Text.Encoding.ASCII.GetBytes(textbox1.text + "$")
serverStream.Write(outStream, 0, outStream.Length)
networkStream.Write(filebuffer, 0, filestream.Length)
End If
Next
Next
Next
Server:
handlerSocket = alSockets(alSockets.Count - 1)
Dim networkStream As NetworkStream = New NetworkStream(handlerSocket)
Dim blockSize As Int16 = 1024
Dim thisRead As Int16
Dim dataByte(blockSize) As Byte
SyncLock Me
Dim clientSocket As New TcpClient
Dim bytesFrom(10024) As Byte
Dim dataFromClient As String
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
clientsList(dataFromClient) = clientSocket
msg(dataFromClient + " Joined chat room ")
Dim SaveFileName As String = Nothing
Dim DialogSave As New SaveFileDialog
DialogSave.Filter = "All files (*.*)|*.*"
DialogSave.FileName = dataFromClient
DialogSave.RestoreDirectory = True
DialogSave.Title = "Where do you want to save the file?"
DialogSave.InitialDirectory = "C:/"
If DialogSave.ShowDialog() = DialogResult.OK Then
SaveFileName = DialogSave.FileName
End If
Dim filestream As FileStream
filestream = File.OpenWrite(SaveFileName)
While (True)
thisRead = networkStream.Read(dataByte, _
0, blockSize)
If thisRead = 0 Then Exit While
filestream.Write(dataByte, 0, thisRead)
End While
handlerSocket.Close()
filestream.Close()
End SyncLock
lbConnections.Items.Add("File Written")
handlerSocket = Nothing