Autor Beitrag
pyr0t0n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Sa 13.05.06 18:14 
Hallo,

Also ich würde gerne dateien über die TServerSocket an den TClientSocket senden. Ich weis es gibt indy usw. Da ich aber einen Router habe und den Server spiele weil ich zu dem anderen keine Direct Connection aufbauen kann benutze ich halt diese sog. Reverse Connection. Deswegen funzt das mit dem Indy FTP auch net weil ich halt keine Dateien von dem Server an den Clienten senden kann.

Nun ich habe irgendwo schonmal gelesen das sowas möglich ist. Nun meine Frage. WIE? ^^

Hoffe ihr könnt mir helfen. Danke schonmal

Mfg
Pyr0t0n
Green
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: Sa 13.05.06 19:06 
naja, dabei gehts halt letztendlich ums protokoll... das heisst du musst dem Client klarmachen das ja ne datei kommt. dann kannste deine datei aufspalten, also komplett mit header und so, stück für stück als strings übergeben, und am anderen ende wieder ne datei druss machen... is aber recht kompliziert. besonders mit dem header und so

mfG Green
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 13.05.06 19:47 
Moin!

user profile iconpyr0t0n hat folgendes geschrieben:
Ich weis es gibt indy usw. Da ich aber einen Router habe und den Server spiele weil ich zu dem anderen keine Direct Connection aufbauen kann benutze ich halt diese sog. Reverse Connection. Deswegen funzt das mit dem Indy FTP auch net weil ich halt keine Dateien von dem Server an den Clienten senden kann.

Dann hast du deinen Router nicht korrekt konfiguriert; das wird dann mit den Sockets vermutlich auch nicht korrekt funktionieren, die haben nur eine andere API, aber setzen genauso auf der WSA auf... :|

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
pyr0t0n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Sa 13.05.06 20:06 
nein mom ich hab einen router kann die ports für meien server aber freischalten. der anderen mit dem ihc das benutzen will hat einen kann aber dort keine ports freischalten deswegen erhält er den client und connected zu meinem rechner und dann kann ich ihm textnachrichten zukommen lassen also sollte das auch mit dateien gehen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 13.05.06 21:03 
Moin!

OK, dann halt so rum formuliert: wenn´s mit den Indies nicht klappt, geht´s auch mit den Sockets nicht. :|

cu
Narses

//EDIT: Tiepvehler korrigiert ;)

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am So 14.05.06 23:27, insgesamt 1-mal bearbeitet
Green
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: So 14.05.06 00:09 
naja, aber wenn text geht dann kann ers doch nach meiner methode machen ;)

€:
der easy Delhpi Helper sagt foldendes:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
function FileToString(const AFilename: String; StartPos: Integer=0; EndPos: Integer=0): String;
var
FileStream : TFileStream;
wlCount: Integer;
begin
if FileExists(AFilename) then
begin
 if StartPos<0 then StartPos:=0;

 FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
 try
   if (EndPos <= StartPos) or (EndPos>FileStream.Size) then
     EndPos := FileStream.Size;
   wlCount := EndPos - StartPos;
   if FileStream.Size > StartPos then
   begin
     SetLength(Result, wlCount);
     FileStream.Seek(StartPos, soFromBeginning);
     FileStream.Read(Result[1], wlCount);
   end;
 finally
   FileStream.Free;
 end;
end
else
 Result := '';
end;

damit kann ich eine datei in einen String laden...
nun sollte es auch nicht mehr so schwer sein daraus eine funktion zu machen die genau das gegenteil macht, dann hätteste es ja

mfG Green
ghost007
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 14.05.06 02:07 
Hi,
bei den schweizern gibts da 'n tutorial

www.swissdelphicente...showcode.php?id=1072

Hoffe es hilft dir weiter.

MfG - Ghost
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 19.06.07 19:56 
Moin!

user profile iconghost007 hat folgendes geschrieben:
bei den schweizern gibts da 'n tutorial
www.swissdelphicente...showcode.php?id=1072

Von dem gelinkten Code kann ich nur dringend abraten, der hat ganz klare Fehlfunktionen! :shock: :mahn: Hintergründe sind hier und hier nachzulesen. :les:

Hier gibt es ein Tutorial, das zeigt, wie man einen Dateitransfer korrekt über die Sockets abwickeln könnte. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.