#include #include #include #include char buffer[256]; int pos=0; int main(void) { char user[] = "USER Khellendros Khellendros Khellendros :Khellendros\r\n"; char nick[] = "NICK Khellendros\r\n"; char join[] = "JOIN #geek-only\r\n"; char privmsg[] = "PRIVMSG NICKSERV :identify diablo1\r\n"; WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[1000]; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("130.239.18.172"); sin.sin_family = AF_INET; sin.sin_port = htons(6667); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); send(sock,user, strlen(user), 0); printf ("%s\n",user); send(sock,nick, strlen(nick), 0); printf ("%s\n",nick); int a; char *p, tokit[30]; char *j; char poulet[30]; while (1) { while(1) { recv(sock,&buffer[pos],1,0); pos+=1; buffer[pos]='\0'; if(buffer[pos-1]=='\n') { recv(sock, buffer, sizeof(buffer), 0); p = strstr (buffer, "PING"); if (p) { for (p += 6, a = 0; *p && *p != '\n'; p++, a++) tokit[a] = *p; tokit[a] = 0; printf ("tokit: %s\n", tokit); sprintf (poulet, "PONG: %s\n", tokit); send (sock, poulet, strlen (poulet), 0); printf ("%s\n",poulet); } printf ("%s\n",buffer); j = strstr (buffer, "End of /MOTD command."); if (j) { send(sock,join, strlen(join), 0); printf ("%s\n",join); send (sock,privmsg, strlen(privmsg), 0); printf ("%s\n",privmsg); int len = recv(sock,buffer,sizeof(buffer)-1,0); buffer[len]=0; } pos=0; buffer[0]='\0'; } } closesocket(sock); WSACleanup(); } system("pause"); return 0; }