title: Confusion about raw vs. cooked terminal modes?
body: <p>I currently have a <code>chat client</code> that communicates successfully with <code>a server</code>. I am supposed to modify the behavior so that <strong>the prompt moves down when another chat message is received</strong> (i.e. the messages are printed "above" the prompt by printing <code>\b</code> to erase the prompt, printing the message, and then re-printing the prompt). </p>
  
  <p>We were given a <code>test client</code> and <code>test server</code> for testing this functionality, and currently when the user has a prompt but nothing typed in, they can receive messages from other users. When they start typing, the buffer doesn't flush until they type their whole message and hit ENTER.</p>
  
  <p>I am supposed to replicate this behavior, but <em>I am very confused about what raw mode actually is.</em> </p>
  
  <p>Can anyone tell me how to control input/output via raw mode, or why the behavior of the test programs I described above occurs from using raw mode?</p>