Basic TCP server client application
dead code should be removed  
the indention is horrible  

    byte[] StreamMessage = new byte[9632*2];
    try
    {
    socket = peerListener.AcceptSocket();

    Thread.Sleep(500);

        MessageLength = socket.Receive(StreamMessage, 0, StreamMessage.Length, SocketFlags.None);
    }  


should be look like  

    byte[] StreamMessage = new byte[9632*2];
    try
    {
        socket = peerListener.AcceptSocket();

        Thread.Sleep(500);

        MessageLength = socket.Receive(StreamMessage, 0, StreamMessage.Length, SocketFlags.None);
    }

you should enclose IDisposable's like Stream, StreamWriter in using blocks.  

internal void SendMessageViaStreamWriter(object message)
{
    string messageOut = (string)message + "\n";
    using (StreamWriter sw = new StreamWriter(peerClient.GetStream()))
    {
        sw.Write(messageOut);
        sw.Flush();
    }
}


The use of the using statement ensures that the Dispose() method is called in any case (like an exception has happened) this also ensures that the stream is closed.  
methods should be named using PascalCase casing and should be made out of verbs or verb phrases. See: Naming Guidelines  
local variables should be named using camelCase casing.  
the Thread.Sleep(500); does make no sense after accepting the socket. Why do you want the thread to sleep ?  
SendMessageViaStreamWriter is badly named. SendMessage would be much better. What would happen if you decide to change the implementation of the method but forget to change the name, ? Mr.Maintainer would be confused.