Vraag & Antwoord

Programmeren

MSNBot

4 antwoorden
  • Hoi, Ik ben bezig om voor iemand een MSNBot te maken, dat gaat goed als ik het eerste request stuur, en daar krijg ik ook antwoord op, maar mijn tweede request blijft hoe dan ook onbeantwoord Ik gebruiken onder unix c++ met low-level io calls Dit is mijn code [code:1:6a31ac5eb0] #include "msnbot.h" /*MSNBot::MSNBot() { } MSNBot::~MSNBot() { }*/ void MSNBot::mkconn() { int len; int result; fd = socket(AF_INET, SOCK_STREAM, 0); hostaddr = gethostbyname(HOST); if(!hostaddr){ cout << "No route to host!!!"; exit(1); } address.sin_family = AF_INET; //address.sin_addr = *(struct in_addr *)hostaddr -> h_addr_list; address.sin_addr.s_addr = inet_addr(HOST); address.sin_port = htons(PORT); len = sizeof(address); result = connect( fd, (struct sockaddr *)&address, len); if(result == -1){ perror("oops: msnbot"); exit(1); } msnwrite("VER 0 MSNP2"); char buffer4[2048]; msnread((char *)&buffer4, 2048);; char buffer2[2048]; msnwrite("INF 1"); msnread((char *)&buffer2, 2048); char buffer3[2048]; msnwrite("USR 2 MD5 I ", true); msnwrite(USER); len = msnread((char *)&buffer3, 2048); buffer3; struct splitarray mysplit; mysplit = split(buffer3, ' ', len); MD5 context; char *array2 = new char(); array2 = mysplit.array[4]; array2 = strcat(array2, " " PASSWD); context.update((unsigned char *)&mysplit.array[4], strlen((unsigned char *)&mysplit.array[4]) ); context.finalize(); char buffer[2048]; msnwrite("USR 3 MD5 S ", true); msnwrite(context.hex_digest() ); if (wait(0) == true){ len = msnread((char *)&buffer, 2048); } close(fd); } int MSNBot::msnwrite(char *buffer, bool raw) { int len =0; len = write(fd, buffer, strlen(buffer)); if(len == -1) return -1; if(!raw) len =+ write(fd, " \r\n", 4); cout << "Sent: " << buffer; if(!raw) cout << " -CRLF"; cout << " " << endl; return len; } int MSNBot::msnread(char *buffer, int length) { int len; len = read(fd, buffer, length); buffer[len +1] = '\0'; cout << "Received: " << buffer << endl; return len; } struct splitarray MSNBot::split(char string[1024], char sep, int len) { int i; int e=0; int n; struct splitarray retval; char array[1024][1024]; cout << array[1]; // cout << "boe"; for(i = 0; i < len; i++){ if(string[i] == sep){ e++; n = 0; } else{ array[e][n] = string[i]; n++; } } retval.count = e; retval.array = array; return retval; } bool MSNBot::wait(int timeout) // Wait for the filediscriptor to become ready { fd_set waitfd; FD_ZERO(&waitfd); FD_SET(fd, &waitfd); int result; struct timeval waittimeout; waittimeout.tv_sec = 0; waittimeout.tv_usec = timeout * 1000; result = select(FD_SETSIZE, &waitfd, NULL, NULL, &waittimeout); switch(result){ case 0: // timeout return false; case -1: // error cerr << "Plib::pStream::wait::Select error!\n"; return false; default: // fd ready return true; } return false; [/code:1:6a31ac5eb0] Dit is de output: [quote=bash] Sent: VER 0 MSNP2 -CRLF Received: VER 0 MSNP2 Sent: INF 1 -CRLF Received: Sent: USR 2 MD5 I Sent: Robbert_van_den_Berg@hotmail.com -CRLF Received: Sent: USR 3 MD5 S Sent: 752b34f7a0474ed17a1a7065a9174883 -CRLF Received: [/quote] Help! Barry
  • uhm waarom moeilijk doen als het makkelijk kan? er is een speciale site waar je een botje kan downloaden en bewerken zo maak je je eigen bot met tekst zonder moeilijke scripts of codes enige is downloaden en installeren. kijk eens op [url]http://botje.tnhteam.com[/url]
  • :roll: dit is een wel errug oude thread heh! Het probleem is allang opgelost. En btw, ik houd van moeilijk doen :D
  • niemand die het had beantwoord wilde alleen maar helpen sorry hoor

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.