Problem mit IRC-Server

07/01/2006 09:28 termi#1
Hi,
ich habe die letzten Tage mal angefangen nen neuen IRC-Bot zu schreiben (in c/c++ halt ne Gesunde Mischung ^^).

Ich verbinde zum IRC-Server und fange dann an mit meinem Loop das Socket auszulesen....
Bekomme aber die Informationen so zurück:

Quote:

Fri Jun 30 16:20:27 2006: Connecting to 216.179.62.162:6667
Fri Jun 30 16:20:27 2006: Got Packet: :irc.idlemonkeys.net NOTICE AUTH :*** Looking
Fri Jun 30 16:20:27 2006: Got Packet: up your hostname...
:irc.idlemonkeys.net NOTICE AUTH :*** Found your hostname (cached)
Jede Zeile die min Timestamp ist wurde einzelnd (ein Schleifendurchlauf) ausgelesen.

Das Problem was ich nun habe ist:
die erste Zeile wird aus irgendwelchen Gründen in 2 Teilen gesendet / empfangen.
und die letzte Zeile wird mit der davor mitgesendet :(

Wenn ich das ganze nun mit Telnet machen und z.B. mit Ethereal mitsniffe bekomm ich aber immer alls so wies sein sollte ein einer eigene Zeile :(


Muss ich erst noch die Daten aneinanderknöpfen bis ein "\n\r" kommt?

Achja:
Die Daten werden in ein unsigned char[1000] gespeichert.



Code:
void sock::listen()
{
while (1)
{
recv(Socket, Packet, 1000,0);
Log.Write(LOG_PRINT,"Got Packet: %s",Packet);
}
}
(Packet wird in der Header-Datei deklariert. Da fehlt noch die Überprüfung auf nen Socketfehler aber das lass ich erst mal weg..)


Hat jemand nen Plan woran das liegen könnte?
07/01/2006 10:07 termi#2
Im QNet funzt das ganze ohne Probleme :(


Quote:
Sat Jul 1 10:06:17 2006: Connecting to 194.109.129.222:6667
Sat Jul 1 10:06:17 2006: Got Packet: NOTICE AUTH :*** Looking up your hostname

Sat Jul 1 10:06:17 2006: Got Packet: NOTICE AUTH :*** Checking Ident

Sat Jul 1 10:06:18 2006: Got Packet: NOTICE AUTH :*** Found your hostname

Sat Jul 1 10:06:18 2006: Got Packet: NOTICE AUTH :*** Got ident response
aber das auch nur wenns will ^^

Quote:
Sat Jul 1 10:09:07 2006: Connecting to 194.109.129.222:6667
Sat Jul 1 10:09:07 2006: Got Packet: NOTICE AUTH :*** Looking up your hostname

Sat Jul 1 10:09:07 2006: Got Packet: NOTICE AUTH :*** Found your hostname, cached
NOTICE AUTH :*** Checking Ident

Sat Jul 1 10:09:07 2006: Got Packet: NOTICE AUTH :*** Got ident response
sry wegen dem Doppelpost hab zuspät ans editieren gedacht..
07/02/2006 15:45 mr.rattlz#3
Selbstverständlich musst du das auseinanderpflücken, da hast du beim tcp/ip keinerlei Sicherheit, dass Daten, die zusammengehören zufällig in einem Schwung kommen, ist auch bei keinem Protokoll so vorgesehen :P
07/02/2006 20:03 termi#4
mhm ja soweit war ich schon... ich denk ich muss alles aneinander reihen bis ein "\n\r" vom Server kommt was ja fürs Ende der Zeile/Anweisung/What ever steht.
08/04/2006 13:22 x]vIrus[x#5
Quote:
Originally posted by termi@Jul 2 2006, 20:03
mhm ja soweit war ich schon... ich denk ich muss alles aneinander reihen bis ein "\n\r" vom Server kommt was ja fürs Ende der Zeile/Anweisung/What ever steht.
er hats erfasst ^^