void messagereceive(void *sock) { char goatsecks[1000]; int x = 0; char *str; int BUFFER_LENGTH = 512; while(1) { x = recv((SOCKET)sock, goatsecks, 1000, 0); if(x > 0) { goatsecks[x] = 0; char* buffer = (char*)malloc( sizeof( char ) * BUFFER_LENGTH + 1 ), *ptr; if(strstr((char *)goatsecks, "PING") != NULL) { ptr=strstr((char *)goatsecks, "PING")+6; sprintf(buffer, "PONG %s\r\n", ptr); if (strlen(buffer) <= 17) { send((SOCKET)sock, buffer, strlen(buffer),0 ); } free(buffer); } else if (strstr((char *)goatsecks, " :!test") != NULL) { sprintf(buffer, "PRIVMSG #debug TEST\n"); send((SOCKET)sock, buffer, strlen(buffer),0); } send((SOCKET)sock, "JOIN #debug\r\n", strlen("JOIN #debug\r\n"),0); std::cout << goatsecks << std::endl; } Sleep(10); } }