DCC: Verbindungsproblem [gelöst]

Für allgemeine Fragen zur Programmierung mit PureBasic.
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

DCC: Verbindungsproblem [gelöst]

Beitrag 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
Zuletzt geändert von IceFish am 23.01.2008 00:51, insgesamt 1-mal geändert.
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Beitrag 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?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

IceFish hat geschrieben:Da scheinbar keiner eine Idee hat [...]
ich weiß ja noch nicht einmal, was DCC ist.

Grüße ... Kiffi
a²+b²=mc²
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Beitrag 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?
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

LAMO! Der "Vorstand"! Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ich stell mir die 3 da grad in so nem lustigen Iglu-Zelt vor... :mrgreen: :lol:

Zum Topic:
http://purearea.net/pb/CodeArchiv/Inter ... emplate.pb
http://www.purebasic.fr/german/viewtopic.php?t=14295
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Beitrag 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.
Zuletzt geändert von IceFish am 23.01.2008 00:38, insgesamt 1-mal geändert.
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Ja, das sollte so stimmen.
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Beitrag 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!
Antworten