Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dateiversand mit IdIRC? (https://www.delphipraxis.net/26814-dateiversand-mit-idirc.html)

lillith 29. Jul 2004 20:37


Dateiversand mit IdIRC?
 
Hi Leutz,

ich habe einen mini-irc-client mit IdIRC gebastelt.
Wie kann Dateien senden und empfangen?

danke & cu
lillith

supermuckl 29. Jul 2004 22:31

Re: Dateiversand mit IdIRC?
 
falls du das DCC meinst dann schau dich mal auf der RFC seite nach DDC um und schau wie das protocol aufgebaut ist und dann verwendest du die entsprechende indy komponente mit der du dieses application layer protocol nachfriemeln kannst ( wohl TCP/IP mit streams oderso )

lillith 30. Jul 2004 12:12

Re: Dateiversand mit IdIRC?
 
danke für den Hinweis.
Ja ich meine DCC.
An "nachbasteln" via TCPClient hatte ich eher nicht gedacht.

Frage: Unterstützt der Indy-IRC-Client den Dateiaustausch via DCC?
Falls ja, wie?
Falls nein, wer hat schon mal Dateiversand via DCC gemacht und wie?

Für was: Ein Bot halt, der u.a. Dateitransfer unterstützen soll ...

thx & cu lillith

Chef16 1. Aug 2004 21:50

Re: Dateiversand mit IdIRC?
 
Hi,

also die Indy-Komponente kannste vergessen. Programmier lieber mit Sockets.
Ich habe schon öfters DCC gemacht. Die Indy-Komponente unterstützt kein DCC auserdem hatt die Indy-Komponente paar kleine Fehlern. Wie DCC geht steht leider nicht im RFC, aber das hat ja auch nichts mit IRC zu tuhen. kannst dich ja mal bei mir melden PM oder im IRC-Channel dann erkläre ich dir wie das geht.

MFG
Sven!

supermuckl 1. Aug 2004 22:02

Re: Dateiversand mit IdIRC?
 
es wäre ja nicht schlecht wenn du die lösung hier posten würdest.. vielleicht würd ich oder jemand anderst auch DCC coden ^^
mit was is ja mal egal

Chef16 1. Aug 2004 22:33

Re: Dateiversand mit IdIRC?
 
Direkt ein IRC-Client oder ein IRC-Bot habe ich leider nicht mehr, weil ich leider vor ca. 1-2 Monaten formatieren musste und habe keine Daten gesichert. Beispiel:

Ihr bekommt DCC gesendet, dann bekommt Ihr die IP-Nummer als LongIP Dateiname Dateigröße und Port. In welcher reinfolge weis ich nicht mehr genau. Aber das sieht Ihr ja in OnRead Ereigniss von TClientSocket. Ihr müsst dann ein TClientSocket zur laufzeit erstellen. Die LongIP umwandeln. Und den Client verbinden lassen zum Server mit den empfangen Port und die umgewandelte LongIP.
Wenn Ihr verbunden seit, bekommt Ihr die ersten Daten gesendet. Die dann in FileStream schreiben. Ihr müsst dann jedes Packed bestätigen, in dem Ihr die gesendeten Bytes (Insgesamt) FileStream.Size zurück sendet. Wichtig ist, dass Ihr die größe vorher buffergerecht umwandelt mit 2 Funktionen - u_long und ntohl die sind in einer Unit von Delphi, wie heißt die gleich nochmal...achja: winsock.

Und ich weis nicht mehr genau, ich glaube Ihr müsst euch dann vom Server trennen oder war das bei DCC Senden...weis ich nicht mehr. Demächt wollte ich wieso nochmal ein Bot programmieren und einen IRC-Client. Dann werde ich DCC als Tutorial zusammen fassen (Multy-DCC). Ich kann ja gerne das Tutorial dann Ihr posten das Tutorial befindet sich dann auch auf meiner Website - http://www.delphiarea.de wenn die Online ist. Falls jemand DCC machen woll meldet sich einfach im IRC. Dann helfe ich euch gerne.

DCC senden ist so schwierig zu erklären, weil ich nicht weis was man genau nochmal be DCC-Empfangen zurück bekommt. Das gleiche müsst Ihr einfach zurück senden nur halt mit euren Dateiname, Dateigröße, IP als LongIP und Port als Notice zum User. Dann die Datei in FileStream laden und senden.

MFG
Sven!

Unplugged 20. Sep 2004 11:52

Re: Dateiversand mit IdIRC?
 
Hi,

ich stehe vor dem gleichen Problem wie lillith. Ich suche eine Möglichkeit, eine Datei per DCC zu senden.

Wie kann ich das am einfachsten realisieren und wie ist der Ablauf einer solchen DCC-Sitzung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz