title: Reading from TcpStream results in empty buffer
body: <p>I want to read data from a TCP stream but it results in an empty <code>Vec</code>:</p>
  
  <pre><code>extern crate net2;
  
  use net2::TcpBuilder;
  use std::io::Read;
  use std::io::Write;
  use std::io::BufReader;
  
  let tcp = TcpBuilder::new_v4().unwrap();
  let mut stream = tcp.connect("127.0.0.1:3306").unwrap();
  let mut buf = Vec::with_capacity(1024);
  stream.read(&amp;mut buf);    
  println!("{:?}", buf); // prints []
  </code></pre>
  
  <p>When I use <code>stream.read_to_end</code> the buffer is filled but this takes way too long.</p>
  
  <p>In Python I can do something like </p>
  
  <pre class="lang-py prettyprint-override"><code>import socket 
  
  TCP_IP = '127.0.0.1'
  TCP_PORT = 3306
  BUFFER_SIZE = 1024
  
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect((TCP_IP, TCP_PORT))
  #s.send(MESSAGE)
  data = s.recv(BUFFER_SIZE)
  s.close() 
  print "received data:", data
  </code></pre>
  
  <p>How can I achieve this in Rust?</p>