Сначала в коде, который вы написали, есть ошибка:
while(bytes = recv(sClient, cClientMessage, 599, 0)){
Это неверно, потому что recv вернет ненулевое значение, если будет ошибка сокета и ваш код приведет к бесконечному циклу. В частности, вы хотите проверить на> 0
char cClientMessage[599];
while((bytes = recv(sClient, cClientMessage, sizeof(cClientMessage), 0)) > 0)
{
if(strlen("Message") == bytes && !strncmp("Message", cClientMessage, bytes))
{
//cClientMesssage contains "Message"
}
}
if(bytes == 0)
{
//socket was gracefully closed
}
else if(bytes < 0)
{
//socket error occurred
}
Проблема с тем, что вы сделали: cClientMessage == "Message" заключается в том, что если вы сравните char * со строковым литералом или char [] со строковым литералом, то вы будете сравнивать адреса указателей, а не актуальное содержание.