Как правильно разделить пакеты, используя поток Sockets? C #
Я создаю приложение сервер / клиент и просматриваю варианты разделения пакетов. Я читал, что наиболее правильным было бы создать заголовок, содержащий информацию о том, насколько велика полезная нагрузка, и затем читать до конца.
Как это работает программно?
Также разделяя их, используя "\ n" перевод строки. Хороший пример был бы хорош.
Я асинхронно получаю данные следующим образом:
private void AsyncReceive(IAsyncResult result)
{
int bytesTransfered;
try
{
bytesTransfered = _handle.EndReceive(result);
if(bytesTransfered <= 0)
{
throw new Exception("No bytes transfered");
}
}
catch(NullReferenceException)
{
return;
}
catch(ObjectDisposedException)
{
return;
}
catch(Exception)
{
return;
}
byte[] received = new byte[bytesTransfered];
try
{
Array.Copy(_readBuffer, received, received.Length);
}
catch(Exception)
{
Disconnect();
return;
}
// How should I process the received data now?
try
{
_handle.BeginReceive(_readBuffer, 0, _readBuffer.Length, SocketFlags.None, AsyncReceive, null);
}
catch(ObjectDisposedException)
{
return;
}
catch(Exception)
{
}
}