Seite 1 von 1
DCC: Verbindungsproblem [gelöst]
Verfasst: 21.01.2008 23:51
von IceFish
Hallo,
ich möchte gerne einen IRC DCC-Clienten programmieren, habe jedoch ein Verbindungsproblem: Ich empfange ohne Probleme die Daten DCC SEND <file> <ip> <port> <size> und auf 'Nachfrage' auch DCC ACCEPT <file> <port> <position>. Jedoch klappt es nicht mittels der <ip> und dem <port> über OpenNetworkConnection() eine Verbindung aufzubauen.
Wenn ich mir <ip> und <port> ausgeben lasse, sehen die Werte jedoch korrekt aus.
Vielleicht hat jemand eine Idee woran das liegen könnte?
P.S.: Mit mIRC kann ich ohne Probleme die Datei empfangen.
Gruß IceFish
Verfasst: 22.01.2008 23:23
von IceFish
Da scheinbar keiner eine Idee hat, mal die Frage ob jemand schon mal mit erfolg einen IRC-Clienten mit DCC-Unterstützung in PB programmiert hat? Und mir eventuell den entsprechenden Code posten kann?
Verfasst: 22.01.2008 23:53
von Kiffi
IceFish hat geschrieben:Da scheinbar keiner eine Idee hat [...]
ich weiß ja noch nicht einmal, was
DCC ist.
Grüße ... Kiffi
Verfasst: 23.01.2008 00:05
von IceFish
Achso, also DCC steht für 'Direct Client-to-Client' und ist wie der Name sagt, eine direkte Verbindung zwischen zwei Clienten. Die Kommunikation läuft also nicht wie üblich im IRC (Internet Relay Chat) über den entsprechenden Server.
Praktisch wird das Protokoll meist genutzt um Dateien zu verschicken. Dabei wird der Sender zum 'Server' und der Empfänger bekommt eine <ip> und einen <port> zugeschickt (noch über den IRC-Server), zu welchem er eine Verbindung erstellen sollen um später dann die Datei zu empfangen.
Mein Problem ist jetzt, das ich keine Verbindung aufbauen kann. Dabei bin ich mir sehr sicher das an der <ip> und dem <port> nichts falsch ist.
Ich dacht mir, vielleicht hat einer eine Idee was das Problem sein könnte?
Verfasst: 23.01.2008 00:06
von Fluid Byte
LAMO! Der "Vorstand"!

Verfasst: 23.01.2008 00:24
von HeX0R
Soviel ich das noch weiss, kommt doch die IP als LONG, oder ?
Und du musst sie via IPString() umwursten ?
Sollte es so sein, musst du bedenken, dass die IP spiegelverkehrt ankommt, also du bekommst dann statt 127.0.0.1 eine 1.0.0.127.
Verfasst: 23.01.2008 00:26
von hardfalcon
Verfasst: 23.01.2008 00:33
von IceFish
Also ich filtere die <ip> als string aus der Nachricht herraus und übergebe sie der Funktion ConvertIP(ip.s)
Code: Alles auswählen
Procedure.s ConvertIP(ip.s)
ip = IPString(Val(ip))
ip = StringField(ip,4,".")+"."+StringField(ip,3,".")+"."+StringField(ip,2,".")+"."+StringField(ip,1,".")
ProcedureReturn ip
EndProcedure
@hardfalcon: Danke, aber da fällt kein einziges mal DCC und somit kann ich damit nichts anfangen.
Verfasst: 23.01.2008 00:37
von HeX0R
Ja, das sollte so stimmen.
Verfasst: 23.01.2008 00:41
von IceFish
Ich werd' verrückt! es geht :-D
Hmm, jetzt weiß ich zwar nicht mehr genau was ich gemacht habe, aber es hatte irgendwas mit der IP zutun.
Also besten Dank!