rendered paste bodyvoid s(){ char alias[128]; printf("Enter desired alias.\n\n"); scanf("%s", alias); printf("Alias: %s\n", alias); char connected[3], buffer[1024], *p; int iLength, i; WSADATA wsadata; int WSA = WSAStartup(MAKEWORD(2,2), &wsadata); if (WSA != 0) { printf("Error at WSAStartup()\n"); return; } ConnectSocket = socket(AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("Error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); return; } sockaddr_in clientService; clientService.sin_family = AF_INET; clientService.sin_addr.s_addr = inet_addr(ip); clientService.sin_port = htons(port); if (connect(ConnectSocket, (SOCKADDR*)&clientService, sizeof(clientService)) != 0) { printf("Failed to connect.\n"); WSACleanup(); return; } else { sprintf(connected, "1"); printf("Connected to server.\n"); //raw("hello.\n"); //Sleep(5000); //printf("Sent.\n"); raw("connected\n"); } while (connected) { memset(buffer, 0, sizeof(buffer)); if (recv(ConnectSocket, buffer, sizeof(buffer) - 1, 0) <= 1) { closesocket(ConnectSocket); WSACleanup(); return; } else { iLength = strlen(buffer); for (i = 0; i < iLength; i++) { if ((buffer[i] == '\r') || (buffer[i] == '\n')) { buffer[i] = 0; } } p = buffer; while (p[0] != 0) { parse(p, alias); iLength = strlen(p) + 2; p += iLength; } } } return;}void parse(char *data, char *calias){ char *p[8]; int i; p[0] = strtok(data, ": \r\n"); for (i = 1; i < 8; i++) p[i] = strtok(NULL, " \r\n"); if (!p[0]) return; if (strcmp("ready", p[0]) == 0) { printf("Sent: hello\n"); raw("hello\n"); return; } printf("%s: %s\n", calias, p); return;}void raw(char *str){ char rawbuffer[1024]; sprintf(rawbuffer, "%s", str); send(ConnectSocket, rawbuffer, strlen(rawbuffer), 0); return;}