champ1979
New member
- Joined
- Aug 1, 2005
- Messages
- 1
- Programming Experience
- 3-5
I wrote a server (code pasted below) that is supposed to receive ASCII text files. For each file I receive, I change some header info and save it as another file on my end. For some reason, the files that I receive come as garbage characters. However, when I send the same file as a string, it goes through properly. Is there some extra processing that I shoudl do if my server is expecting a file, rather than just string data?Here's the code for my server:
VB.NET:
[size=2][color=#0000ff]
Sub[/color][/size][size=2] ReceiveReport()
tcpListener = [/size][size=2][color=#0000ff]New[/color][/size][size=2] TcpListener(Config.Port)
tcpListener.Start()
ui.UpdateUI("Server Active...")
[/size][size=2][color=#0000ff]Try
[/color][/size][size=2][color=#0000ff]While[/color][/size][size=2] keepListening
[/size][size=2][color=#0000ff]If[/color][/size][size=2] tcpListener.Pending [/size][size=2][color=#0000ff]Then
[/color][/size][size=2][color=#008000]'Accept the pending client connection and return a TcpClient initialized for communication.
[/color][/size][size=2]tcpClient = tcpListener.AcceptTcpClient()
CreateLogFile("Connection Accepted")
[/size][size=2][color=#008000]' Get the stream
[/color][/size][size=2]networkStream = tcpClient.GetStream()
[/size][size=2][color=#008000]' Read the stream into a byte array
[/color][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] bytes(BUFFER_SIZE) [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]Byte
[/color][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] clientdata [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]String
[/color][/size][size=2][color=#0000ff]Do
[/color][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] numBytesRead [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]Integer[/color][/size][size=2] = networkStream.Read(bytes, 0, BUFFER_SIZE)
clientdata += Encoding.ASCII.GetString(bytes, 0, numBytesRead)
[/size][size=2][color=#0000ff]Loop[/color][/size][size=2][color=#0000ff]Until[/color][/size][size=2][color=#0000ff]Not[/color][/size][size=2] networkStream.DataAvailable
ui.UpdateUI(clientdata)
CreateLogFile(clientdata, bytes)
CreateLogFile(clientdata)
[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] translatedData [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]String[/color][/size][size=2] = ChangeHeaderAndFooter(clientdata)
CreateFile(translatedData, bytes)
CreateFile(translatedData)
networkStream.Flush()
[/size][size=2][color=#0000ff]Else
[/color][/size][size=2][color=#008000]'Wait for the request
[/color][/size][size=2][color=#008000]'ui.UpdateUI("Server Active...")
[/color][/size][size=2]Thread.Sleep(100)
[/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]If
[/color][/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]While
[/color][/size][size=2]tcpClient.Close()
networkStream.Close()
tcpListener.Stop()
[/size][size=2][color=#0000ff]Catch[/color][/size][size=2] ex [/size][size=2][color=#0000ff]As[/color][/size][size=2] Exception
CreateLogFile("Receive Report Error: " & ex.ToString())
[/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]Try
[/color][/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]Sub[/color][/size]
[size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size][size=2][color=#000000] CreateFile([/color][/size][size=2][color=#0000ff]ByVal[/color][/size][size=2][color=#000000] data [/color][/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]String[/color][/size][size=2][color=#000000])[/color]
[/size][size=2][color=#0000ff]Try
[/color][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] fileName [/size][size=2][color=#0000ff]As[/color][/size][size=2][color=#0000ff]String[/color][/size][size=2] = GenFileName()
[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] writer [/size][size=2][color=#0000ff]As[/color][/size][size=2] StreamWriter = File.CreateText(Config.OutputDirectory & "\" & fileName)
writer.WriteLine(data.Trim())
writer.Close()
[/size][size=2][color=#0000ff]Catch[/color][/size][size=2] ex [/size][size=2][color=#0000ff]As[/color][/size][size=2] Exception
CreateLogFile("Change File Error: " & ex.ToString())
[/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]Try
[/color][/size][size=2][color=#0000ff]End[/color][/size][size=2][color=#0000ff]Sub
[/color][/size][/color][/size]