Hej igen
Jeg er tilbage, denne gang med en C++ udgave af min (indtil videre) utroligt simple IRC reader.
Jeg prøver som før sagt, at få noget response fra en IRC server og det går egentlig også sådan nogenlunde. Jeg har fulgt Robert Larsens utrolige artikler, og har så selv skrevet lidt kode hist og her:
//main.cpp
#include "Net.h"
#include "UnknownHostException.h"
#include "NetException.h"
#include "ConnectionLostException.h"
#include "TCPSocket.h"
#include <iostream>
#if defined(__linux__)
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#endif
int main(int argc, char ** argv)
{
try {
netInit();
try {
string adrstr = "irc.freenode.net";
char buffer[1024];
int bytesRead;
TCPSocket socket(adrstr, 6667);
socket.connect();
std::string pass = "PASS NOPASS";
std::string nick = "NICK Saebekassebil";
std::string user = "USER Saebekassebil 8 * :Unknown Name";
std::string channel = "JOIN #help";
socket.write(pass.c_str(), pass.size());
socket.write(nick.c_str(), nick.size());
socket.write(user.c_str(), user.size());
socket.write(channel.c_str(), channel.size());
try {
while(1) {
bytesRead = socket.read(buffer, sizeof(buffer));
std::cout.write(buffer, bytesRead);
cout.flush();
}
} catch(ConnectionLostException & e) {
// Server disconnect
}
socket.close();
} catch(NetException & e) {
std::cout << e << std::endl;
}
netRelease();
} catch(NetException & e) {
std::cout << "Couldn't initialize the component: " << e << std::endl;
}
return 0;
}
Og jeg får følgende response:
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking ident
NOTICE AUTH :*** Found your hostname
NOTICE AUTH :*** No identd (auth) response
ERROR :Closing Link: 127.0.0.1 (Connection Timed Out)
Den går altså "i stå" ved no identd (auth), selvom det ikke er nødvendigt for at være på en freenode server.
Kan i se nogle kode / IRC fejl?
Indlæg senest redigeret d. 01.06.2010 23:31 af Bruger #11328