Ethernet TCP server is sending junk data to it's clients

I'm attempting to run a simple, raw TCP server on my Arduino Uno using this Ethernet shield I want it to do something minimal and easy, since I'm still learning how to use it.

Here's my code

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x30, 0x5E};
byte ip[] = {192, 168, 0, 189};
Server server(80);

void setup()
{
    Ethernet.begin(mac, ip);
    server.begin();
}

void loop()
{
Client client = server.available();
if(client)
{
    client.println("Test");
    client.stop();
}
}

After the sketch is running, and I connect to it with a client, the data that the client recieves from the server is not the word "Test". It's just a bunch of junk text, and not even all of it is printable characters. When I connect to the server in Firefox, Firefox thinks it's a "bin file".

Does anyone know what's going on, or am I doing something stupid?

Can you explain what you mean by TCP server? You mean: Telnet server? FTP server? HTTP server?

@Nick: A raw TCP server is probably what you meant by Telnet server. Arduino cannot host a Telnet server because it doesn't have the concept of a shell and a login but often people refer to raw TCP servers as telnet servers.

@OP: At least in the current IDE you must use EthernetServer and EthernetClient because Server and Client are virtual classes. Try your code with a the current IDE. I don't install legacy IDEs to debug your code.

Don't use the HTTP port (80) for something other than HTTP, that's not a good idea.