title: C# game client with asyncronous sockets
body: <p>I'm developing a small online game in C#. Currently I am using simple sync TCP sockets. But now (because this is some kind of "learning project") I want to convert to asynchronous sockets. In the client I have the method: <code>byte[] SendAndReceive(Opcode op, byte[] data)</code>.
  But when I use async sockets this isn't possible anymore. 
  For example my <code>MapManager</code> class first checks if a map is locally in a folder (checksum) and if it isn't, the map will be downloaded from the server.</p>
  
  <p>So my question:
  Is there any good way to send some data and get the answer without saving the received data to some kind of buffer and polling till this buffer isn't null?</p>