private async Task<byte[]> ReadBytes(Socket s, int byteCount) { var recived = 0; var buffer = new byte[byteCount]; while (recived < byteCount) { var nowRecived = await s.ReceiveTaskAsync(buffer, recived, byteCount - recived, SocketFlags.None); if (nowRecived == 0) throw new IOException("Disconnected!"); recived += nowRecived; } return buffer; }