如何在C#而不是byte中使用TcpClient的字符串?

时间:2009-02-03 16:51:36

标签: c# .net

在C#中,我尝试通过TcpClient发送一个字符串:

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);

我必须将消息从字符串转换为字节,有没有办法可以直接将其作为字符串发送?

我知道这在Java中是可行的。

1 个答案:

答案 0 :(得分:8)

在outputClient.GetStream:

之上创建一个StreamWriter
StreamWriter writer = new StreamWriter(outputClient.GetStream(),
                                       Encoding.ASCII);
writer.Write(message);

(您可能需要using语句自动关闭编写器,您还应该仔细考虑要使用哪种编码。您确定要将自己限制为ASCII吗?如果您控制两侧连接所以可以选择任意编码,那么UTF-8通常是一个不错的选择。)