Я создаю сервер сокета, который должен постоянно слушать входящие сообщения от подключенных клиентов. Эти сообщения будут отправлены в массив byte []. Я отлично работал с StreamReader, но StreamReader работает только с текстовыми представлениями отправляемых данных ... а не байтов [] массивов.создать «прослушиватель» для входящего потока сокета, который будет содержать массив byte []
Вот что я имел:
StreamReader reader = new StreamReader(Client.GetStream());
string line = "";
while (true)
{
line = reader.ReadLine();
if (!string.IsNullOrEmpty(line))
{
parentForm.ApplyText(line + "\r\n");
SocketServer.SendBroadcast(line);
}
}
мне нужно прямо сейчас конвертировать, что в сырьевой поток как-то, что будет преобразовывать содержимое потока в байт [] массив, но я не могу показаться, чтобы получить ручку на Это.
Я попытался это:
while (true)
{
var bytes = default(byte[]);
using (var memstream = new MemoryStream())
{
var buffer = new byte[512];
var bytesRead = default(int);
while ((bytesRead = reader.BaseStream.Read(buffer, 0, buffer.Length)) > 0)
memstream.Write(buffer, 0, bytesRead);
bytes = memstream.ToArray();
}
//parentForm.ApplyText(bytes.Length + "\r\n");
}
, но как вы можете догадаться, в то время (правда) цикл не совсем работает так, как мне это нужно. Может ли кто-нибудь помочь мне с некоторой корректировкой кода, чтобы сделать эту работу так, как мне это нужно. Он должен постоянно слушать входящие сообщения, затем, когда сообщение получено, ему нужно что-то сделать с этим сообщением (массив byte []), а затем снова вернуться к прослушиванию.
ТИА
Как именно он не работает? Вы не дали нам достаточной информации для работы. –
Как выглядит сообщение? Это фиксированная длина? Это префикс длины? Является ли это символом новой строки (предположим, что это может быть текст)? – MarkPflug
В вашей второй части кода нет понятия сообщения. Я имею в виду, что часть while будет непрерывно считывать данные до тех пор, пока клиент не закроет соединение, поскольку он не проверяет наличие разделителей во входящем потоке данных или что-то еще. – user1096188