tags:

views:

353

answers:

1

In C# I try to send a string through TcpClient as such:

byte[] outputOutStream = new byte[1024];
ASCIIEncoding outputAsciiEncoder
string message //This is the message I want to send
TcpClient outputClient = TcpClient(ip, port); 
Stream outputDataStreamWriter   

outputDataStreamWriter = outputClient.GetStream();
outputOutStream = outputAsciiEncoder.GetBytes(message);
outputDataStreamWriter.Write(outputOutStream, 0, outputOutStream.Length);

I must to convert message from string to bytes, is there a way I can send it directly as string?

I know this is possible in Java.

+6  A: 

Create a StreamWriter on top of outputClient.GetStream:

StreamWriter writer = new StreamWriter(outputClient.GetStream(),
                                       Encoding.ASCII);
writer.Write(message);
Jon Skeet
Would he need to encode the length of the string as part of the stream too, or is that handled automagically?
Andrew Rollings
The stream of data doesn't contain the length of the string. If he wants to do that, BinaryWriter would probably be a better bet. It will depend on the protocol, basically.
Jon Skeet