C++ console irc client not connecting
Posted: Mon Feb 15, 2010 1:59 am
I'm coding a channel bot in C++, This is what I have so far. it connect to server but doesn't join channel instead says "451 you have not registered"
any ideas what I'm doing wrong?
any ideas what I'm doing wrong?
Code: Select all
#pragma comment(lib, "wsock32.lib ")
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
int main(){
char buf1[1200];
char nick[] = "iarkeytest";
char text1[4096];
char buf[4096];
int n;
WSAData wsdata;
WORD wsver=MAKEWORD(2, 0);
int nret=WSAStartup(wsver, &wsdata);
if(nret != 0){
std::cout<<"Startup failed, error code: "<<WSAGetLastError();
WSACleanup();
return -1;
}
printf("Init success\n");
SOCKET kSock=socket(AF_INET, SOCK_STREAM, 0);
if(kSock == INVALID_SOCKET){
printf("Socket init failed");
return -1;
}
printf("Socket initialized\n");
sockaddr_in sin;
sin.sin_port=htons(6667);
sin.sin_addr.s_addr=inet_addr("127.0.0.1");
sin.sin_family=AF_INET;
if(connect(kSock,(sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR){
std::cout<<"Connect failed, error: "<<WSAGetLastError();
WSACleanup();
return -1;
}
printf("Connection successful!\n\n");
n = recv(kSock, buf1, sizeof(buf1)-1, 0);
if ( n > 0 ) {
buf1[n] = '\0';
printf("%s\n",buf1);
} else {
printf("No Data\n");
}
memset(text1,0,255);
sprintf(text1, "NICK %s\r\nUSER %s 0 * :%s\r\n\0", nick, nick, nick);
send(kSock, text1, strlen(text1), 0);
printf(">>Client: %s\n",text1);
Sleep(100);
memset(text1,0,255);
sprintf(text1,"JOIN #lobby\r\n");
send(kSock, text1, sizeof(text1), 0);
printf(">>Client: %s\n",text1);
memset(text1,0,255);
sprintf(text1,"PRIVMSG #lobby :Test Message\r\n");
send(kSock,text1,sizeof(text1),0);
printf(">>Client: %s\n",text1);
while (1) {
memset(buf,0,255);
recv( kSock,buf,255,0);
if ( strstr(buf,"PING") != 0 ) {
printf("Server sent PING\n");
send(kSock,"PONG :\r\n",6,0);
printf("Replying with PONG\n");
}
memset(buf,0,255);
}
}