Итак, я пишу два приложения, одно консольное и одно фоновое / windows-приложение.Эти два приложения созданы для связи друг с другом через TCP (я использую класс TcpClient и класс TcpListener).Проблема, с которой я столкнулся, заключается в том, что при изменении типа вывода фонового приложения с консольного на Windows-приложение кодирование становится не совсем понятным, а вывод на сервер (консольный сервер) печатает некоторые символы как бессмысленные.
Я попытался установить разные кодировки для потоков сокетов, но, похоже, ничего не работает.
TcpClient client = new TcpClient();
socketInput = new StreamWriter(client.GetStream());
socketOutput = new StreamReader(client.GetStream());
...
process.OutputDataReceived += new
DataReceivedEventHandler(p_OutputDataReceived);
...
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (!String.IsNullOrEmpty(e.Data))
{
StringBuilder strOutput = new StringBuilder();
try
{
strOutput.Append(e.Data);
Console.WriteLine(strOutput);
socketInput.WriteLine(strOutput);
socketInput.Flush();
}
catch (Exception ex) { }
}
}