Thanks, closing the string properly (duh!) solved most of the problem.
Instead, sometimes I cannot type anything at all
For some reason, adding the null terminating character changes this problem. It used to refuse to let me type anything. Now it inputs, but it won't send the message. I've noticed that both the client and the server can send a message only once. After that I can still type, but hitting the enter key has no effect. However, I know that the send function is still running because it correctly identifies when we have disconnected.
The server has also started to send an apparently blank message when it connects to the client.
At the moment everything in the buffer is being pronted out, even after the null-terminator at the end of the desired string
Seeing as I am re-creating the character array every time that Thread_Receive runs (presumably making the string blank), why should there be any characters after the null terminator?