I am trying to code a basic command line server, basically so I can telnet to it and send data and the server will print it out.

Code:
#include <stdio.h>
#include <windows.h>
#include <winsock2.h>


int main()

{
int servSock;
int clntSock;
struct sockaddr_in echoServAddr;
struct sockaddr_in echoClntAddr;
unsigned short echoServPort;
unsigned int clntLen;
WSADATA wsaData;
char echoBuffer[100];
int recvMsgSize;


WSAStartup(MAKEWORD(2, 0), &wsaData);
servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);



echoServAddr.sin_family = AF_INET;
echoServAddr.sin_addr.s_addr = htons(INADDR_ANY);
echoServAddr.sin_port = htons(21);


bind(servSock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr));
listen(servSock, 5);
clntSock = accept(servSock, (struct sockaddr *) &echoClntAddr, &clntLen);

while (1)
{
sleep(2000);

recv(servSock, echoBuffer, 0, 0);
printf("%s", echoBuffer);

}

printf("%s", echoBuffer);
return 0;

}

I want to print out all the data received, when I use a loop though it like prints out things in the buffer that haven't been sent "ZZZZZZZ"

So basically can anybody help me.
Sorry for not giving much information.