Networking question

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]
 
Back
Top