datei transfer per phpscript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • datei transfer per phpscript

    halli hallo,
    ich möchte einen datei transfer zwischen 2 computern realisieren.
    dafür habe ich mein chat programm.


    bei einer direkt verbindung:
    wenn jetzt der empfänger hinter einem router sitzt, muss der gegebene port freigeschaltet um die verbindugn aufbauen zu können.

    deswegen möchte ich einen kleinen umweg gehen:
    ich schalte ein phpscript dazwischen was auf einem webserver liegt.

    ich möchte, dass dieses phpscript als server funktioniert.
    beide clients verbinden sich zu diesem, also empfänger und sender.

    wenn etwas am phpscript ankommt, sollen die daten natürlich zum empfänger gesendet werden.

    1. ist das überhauptmöglich ?
    ich kenne nur die methode dass das phpscript per fsockopen eine verbindung aufbaut. dann habe ich das gleiche problem dass, der port am router weitergeleitet werden muss.

    2. brauch man dafür spezielle libs?
    Zuletzt geändert von JokerfaceHRO; 24.02.2007, 15:24.
    [font=dauphin]Die Seite für Spychos[/font]

  • #2
    Möchtest du den Transfer über HTTP realisieren?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Möchtest du den Transfer über HTTP realisieren?
      hmm, vielleicht
      erklär mal genauer was du meinst ^^

      über http (also port 80)wär eigentlich am besten ^^
      Zuletzt geändert von JokerfaceHRO; 24.02.2007, 19:43.
      [font=dauphin]Die Seite für Spychos[/font]

      Kommentar


      • #4
        Nunja, dann musst du dem Client nen Downloadrequest schicken. Er muss den Annehmen und speichern. User a lädt hoch -> User b lädt runter.

        Informier dich mal über die header bzgl. attachments.
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          du meinst, ich soll die datei auf dem server zwischenspeichern?
          wenn die datei vorhanden ist, kann der empfänger die datei dann laden und diese wird vom server gelöscht oder wie?

          kann man das nicht so gestalten, dass das phpscript die empfangenen daten sofort weitergeben kann ohne alls in einer datei auszulagern ?

          edit: hier meine überlegung
          der sender öffnet das phpscript ganz normal über webbrowser komponente. also http zugriff. und sendet die daten an das phpscript, welches die daten am besten in ner variable speichert ^^
          ich glaub aber das bei mehreren mbyte ein string versagen wird xD

          darauf horcht das phpscript ob sich noch ein benutzer (auf einem anderen port) mit dem script verbindet. dann schickt dieses die daten an den empfänger
          Zuletzt geändert von JokerfaceHRO; 25.02.2007, 16:34.
          [font=dauphin]Die Seite für Spychos[/font]

          Kommentar


          • #6
            Ich denke PHP ist für so was ungeeignet, denn folgendes ist mir aufgefallen:

            Wenn der Sender die datei per Formular-Upload ans php sendet, dann wird das php Script erst ausgeführt, wenn die Datei auf dem Server in einer temporären Datei gespeichert ist.

            Wenn du die empfangenen Daten in eine variable speicherst und vor zu an den Empfänger sendest, was passiert, falls der Sender mit 50 kb/s sendet und der Empfänger nur mit 20 kb/s downloaden kann (ich weiss nicht, ob das OS bei den sockets da evtl. was macht)?

            Nunja, dann musst du dem Client nen Downloadrequest schicken
            Dann muss der Client aber auf einem Port horchen, das will doch nicht.
            Naja, es kommt drauf an, wie der Chat geht, wenn es ein Chat in html und ständigem aktualisierender seite ist, und auf dem server ein php script läuft, dann könnt mann bei einer anfrage das natürlich gleich mitschicken, sonnst naja

            In welcher Sprache sind die Clients denn geschrieben?
            Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

            Kommentar


            • #7
              http://php-resource.de/forum/showthr...threadid=80431

              hier is mein thread zum chat

              der chat ist in delphi geschrieben udne in eigenständiges programm.
              da das server programm auch auf einem webserver läuft köntt eich den verkehr darüber abwickeln, was ich nicht möchte wegen,
              überlastung und flexibilität.

              ich denke gerade an ein javaapplet
              hab heut ma wieder en bischen was mit java gemacht ^^

              ansonsten werd ich das proggi einfach ans script senden.
              das script speichert alles in ner mysql db
              und wenn alles fertig ist, gibt das script dem sender ein ok, das wird dann zum epfänger geschickt und die datei wird automatisch über die client kompo vom empfänger geladen.

              nicht das irh mich falsch versteht.
              jeder client also bentuzer hat eine client komponente mit der ich beliebige tcp verbindungen aufbauen kann.

              der webbrowser ist nur eine nebensache und ist nicht sichtbar.
              er wird nur zum senden und empfangen von daten von phpscripts genutz benutzt. zum beispiel um die serverliste vom masterserver zu holen

              ich könnte dafür auch eine weitere client kompo verwenden, doch gibt mir die webbrowser kompo noch einige vorteile ^^

              ich werd ma schaun wie ich das löse ^^

              vielleicht geht'S ja auch über nen tunnel, sodass kein dritter nötig ist
              Zuletzt geändert von JokerfaceHRO; 25.02.2007, 20:07.
              [font=dauphin]Die Seite für Spychos[/font]

              Kommentar


              • #8
                Original geschrieben von JokerfaceHRO
                kann man das nicht so gestalten, dass das phpscript die empfangenen daten sofort weitergeben kann ohne alls in einer datei auszulagern ?
                Du sollst die Grundlagen über WebApp mal nachholen. Das HTTP-Protokoll ist ein zustandloses Protokoll, d.h. der Webserver antwortet nur auf Anfrage. Der Client muss sich dabei identifizieren. Ohne Request gibt es kein Response. Der Webserver kann nicht einfach von sich aus irgendein Client ansprechen, sondern antwortet nur auf Anfragen von Clients.

                Kommentar


                • #9
                  Ohne Request gibt es kein Response. Der Webserver kann nicht einfach von sich aus irgendein Client ansprechen, sondern antwortet nur auf Anfragen von Clients.
                  soller ja auch nicht.

                  ich möchte, dass dieses phpscript als server funktioniert.
                  beide clients verbinden sich zu diesem, also empfänger und sender.
                  [font=dauphin]Die Seite für Spychos[/font]

                  Kommentar


                  • #10
                    lösung

                    heyho !

                    ich habe die lösung für mein problem, es ist einfacher als ich gedacht habe ^^ :

                    sobald eine anfrage für einen dateitransfer zum epfänger vom chat kommt,
                    sendet dieser über einen bestimmten port etwas nach draußen, wohin ist egal, hauptsache ich kenn den port.

                    sobal der empfänger von innen nach außen etwas sendet ist der port auch von außen nach innen offen. wenn der empfänger über den chat dem sender port und ip adresse übergibt, kann dieser sich dann direkt zum empfänger ohne umwege verbinden.

                    mit dieser methode kann man jegliche routereinstellung umgehen, außer die ports werden beidseitig gesperrt ^^
                    Zuletzt geändert von JokerfaceHRO; 01.03.2007, 20:02.
                    [font=dauphin]Die Seite für Spychos[/font]

                    Kommentar

                    Lädt...
                    X