bool Receive(byte[] buf, int ofs, int len)
{
while (len > 0)
{
SocketError errorCode;
var received = _socket.Receive(buf, ofs, len, SocketFlags.None, out errorCode);
if (errorCode != SocketError.Success)
{
SignalDisconnected();
return false;
}
ofs += received;
len -= received;
if (received == 0)
{
if (!IsConnected())
{
SignalDisconnected();
return false;
}
}
}
return true;
}