Perchè nella funzione recv() dici di ricevere 150 caratteri e lui ne riceve 150!!
Devi prima vedere quanti caratteri sono disponibili in ricezione e poi riceverne il numero giusto!
Prova così:
codice:
DWORD sockByte;
/*Lettura dei Byte in attesa di ricezione*/
ioctlsocket(socket,FIONREAD,&sockByte);
if(sockByte>0){
     recvbuf = new char[sockByte];
     /*Ricezione messaggio*/
     recv( sock, recvbuf, sockByte, 0 );
}
Dovrebbe andare