Ankündigung

Einklappen
Keine Ankündigung bisher.

Netzwerkprogrammierung (Chatserver)

Einklappen

Neue Werbung 2019

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

  • Netzwerkprogrammierung (Chatserver)

    Servus,

    ich spiele mit dem Gedanken, einen Chatserver in PHP zu entwickeln. In PHP, um auch Leute zu bedienen, die sich zwar einen Webspace, aber keinen eigenen Server leisten können, um einen echten Chatserver (C/Java/...) laufen zu lassen. Mir stellen sich jetzt einige Fragen zu generellen Einschränkungen seitens der Hoster.

    Ist es vertraglich und technisch erlaubt, einen Port > 1023 zu belegen, z.B. beim Lauschen auf neue Verbindungen?
    Wie sieht's mit Firewalls aus? Kann von außen auf einen solchen Port zugegriffen werden, schließlich wird da ja die Verbindung von außen (Clients) eröffnet?

    Oder kurz gefragt: Ist das realisierbar?

  • #2
    Warum sollte das nicht möglich sein? Nur die ersten 1024 Ports sind vorbelegt der Rest ist Frei verfügbar.
    Wenn der Port offen oder forgewardet wird funktioniert das mit Sicherheit.

    ps: willst dir das wirklich antun in PHP n Chat zu realisieren?
    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

    Kommentar


    • #3
      Die Firewall kann durchaus verbieten, Verbindungen > 1023 von außen zu eröffnen. Und die Möglichkeit besteht, sämtliche socket-Funktionen zu verbieten. Vertraglich oder/und technisch.

      Ich habe schon einige solcher Chatserver in C geschrieben. Macht Spaß und ist nicht wirklich so viel Arbeit in PHP. Ich mach mir nur Sorgen um den Speicherverbrauch.

      Kommentar


      • #4
        Wenn die Firewall den von dir ausgesuchten Port, meinetwegen 45637 nicht sperrt, ist es kein Problem, von aussen darauf zuzugreifen. Solange natürlich ein Script ständig an dem Port lauscht, um Anfragen zu verarbeiten (am besten mit fork...). Da sehe ich kein Problem. Ich habe das schon des öfteren mit Perl ( ) gemacht.

        Wie das von Seiten des Hosters aussieht kann ich nicht sagen. Wirf einfach mal einen Blick in die AGB's des jeweiligen. Such dir ein paar aus und such mal danach. Oder telefonier halt...

        Gruß,
        Andreas

        Kommentar


        • #5
          Zitat von ChiefRebelAngel
          (am besten mit fork...).
          Nix fork, soviel ich weiß, kennt das PHP nicht, und nötig ist es auch nicht, wenn man von Datenbankzugriffen usw absieht. Wenn, dann würd ich Threads verwenden. Aber wir sind in PHP

          Zitat von ChiefRebelAngel
          Oder telefonier halt...
          Ich will doch keine schlafenden Hunde wecken

          Kommentar


          • #6
            Zitat von HStev
            Wenn der Port offen oder forgewardet wird funktioniert das mit Sicherheit.
            Zitat von Saraneus
            Die Firewall kann durchaus verbieten, Verbindungen > 1023 von außen zu eröffnen.
            Ich hab nie das gegenteil behauptet

            Trotzdem wäre C und Java Applets die elegantere Lösung. Chats in PHP sind meiner Meinung nur Frickelarbeit die man besser lassen sollte.
            Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

            Kommentar


            • #7
              Es geht ja nicht um einen dieser Eingabe-Datenbank-Ausgabe-Seitenrefresh-Chats. Wenn die Zendengine ein gutes Speichermanagement hat (oder auch einen Garbagekollektor), dann ist PHP doch durchaus in der Lage, sowas sauber zu bewältigen. C nicht aus genannten Gründen.

              Kommentar


              • #8
                Hier ein sehr nützliches Tutorial:

                http://www.zend.com/pecl/tutorials/sockets.php


                Hab selber mal auf diese weise einen netten multiuser chat server in php geschrieben.
                Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

                Kommentar


                • #9
                  Lieb von dir, aber Netzwerkprogrammierung ist nichts neues für mich

                  Hattest du mit deinem Server Probleme mit diversen Webhostern?

                  Kommentar


                  • #10
                    Uhm, da hab ich wohl dein Posting zu schnell überflogen.
                    Persönlich hatte ich keine Probleme, da ich root server habe.

                    Bei einfachem webspace wirds da wohl schwierigkeiten mit den ports und dem script timeout geben.

                    Aber grundssätzlich ist das realisier bar und schnell geschrieben.
                    Wenn ich dran denke kann ich ja nacher mal meinen code posten wenn ich nach hause komme
                    Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

                    Kommentar


                    • #11
                      Zitat von Ricochet
                      Aber grundssätzlich ist das schnell geschrieben.
                      Kommt auf die Features des Chatservers an
                      Jetzt muss erstmal NULL zu Klassen gecastet werden können (PHP5.1?), sonst mach ich gar nix.

                      Kommentar


                      • #12
                        Zitat von Saraneus
                        Zitat von ChiefRebelAngel
                        (am besten mit fork...).
                        Nix fork, soviel ich weiß, kennt das PHP nicht[...]
                        Doch... PHP kennt fork(). Ziemlich gut sogar
                        http://de3.php.net/manual/de/function.pcntl-fork.php


                        Gruß,
                        Andreas

                        P.S.: Hast aber eigentlich recht. Threads sind doch en bissi besser geeignet, da sie nicht sterben wenn der Vater-Prozess gekillt wurde.

                        Kommentar

                        Lädt...
                        X