Announcement

Collapse
No announcement yet.

Probleme mit TClient und TServer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit TClient und TServer

    Hallo,
    Ich möchte mit dem Builder 3.0 ein Netzwerkspiel machen. Am Anfang soll ein OWL Fenster kommen, in dem man sich mit einem Server
    verbinden kann. Wenn genug Spieler vorhanden soll der Server das Spiel starten. Dann wird ein OpenGL Kontext-Fenster erstellt.
    Ist es möglich, dass ich das Grafikfenster(Win32 oder glut) aufmache, ohne dabei das 1.Fenster, dass den Datenaustausch im
    Netzwerk weiterhin steuert (steuern soll), zu blockiern.

    Derzeit machen mir noch der Verbindungsaufbau Schwierigkeiten. In der Anleitung steht etwas von einem CHAT Beispiel, das konnte
    ich aber nicht finden. Vor allem die Events die beim Server und beim Client eingehen sind etwas seltsam. Ferner weiss ich nicht
    welchen PORT oder SERVICE ich wählen soll.

    Könnte mir jemand erklären wie ich als Client zu einer Verbindung mit einer Server Application komme. Bis jetzt macht mein Client
    folgendes (Port = 0) :

    (TClient)Client->Host = (TEdit)HostName->Text; // bis jetzt immer mein Copmutername
    Client->Open();
    ///////// CLIENT ANWENDUNG HÄNGT SICH HIER AUF //////////////

  • #2
    hallo. also das er sich aufhängt kann daran liegen, das du port = 0 genommen hast, tu das lieber nich. hab zwar keine ahnung ob man das machen darf, aber s sieht irgendwie n bisschen komisch aus. ich glaube die ports ab nummer 5000 sind für die freie nutztung bestimmt, wenns das nich war, dann probier mal statt dem cumputernamen erst mal eine addresse anzugeben (ip). nimm dauzu 127.0.0.1. die steht für local host, also deinen computer. und wenns jetzt imma noch nich geht, dann is entweder die componente nich gut (was ich nich glaube) oder du hast irgendwo einen kleinen versteckten fehler gemacht (warscheinlicher). aber wenn alles nich geht... ich bin grad dabei selbst eine componente für clients und server zu schreiben (was du sicherlich merken wirst, wenn du ins forum guckst).

    cu sandman

    ps: das chat proggi ist bei mir in examples\internet\cha

    Comment


    • #3
      Danke
      Ich hab das chat Prgramm gesucht ich kann es nirgendwo finden. Ich habe es schon einaml in Delphi gesehn aber im Builder 3 ist es nicht ???

      Irgendwas mache ich total falsch. Welche Events MÜSSEN definiert werden damit das Ganze läuft

      Comment


      • #4
        Danke dür den Tip, ich habe einiges hinzugefügt. Unter anderem meldet das Program nun wenn es den Server sucht, ihn gefunden hat und wenn die Verbindung steht. Über die Meldung "Client searches Server" komme ich aber nicht hinaus. Entweder, wenn ich den Host als Namen (mein Computername laut winipcfg) eingebe, friert das Programm ein, oder, wenn ich als IP meine IP oder die loopbackIP 127.0.0.1 eingebe, kommt die Meldung "Asyncroner Socket - Fehler 1006". Was bedeutet das? Bezieht sich das auf die Server Application oder den Client? Ist eine DLL defekt oder meine Netzwerkkarte ? Ich hatte die Netzwerkkarte zuvor in einem NT-Rechner, dort gab es Treiberprobleme, woraufhin ich sie mit meiner(gleiches Fabrikat) tauschte. Ich war seitdem nicht mehr an ein Netz angeschlossen. Normalerweise dürfte die Karte aber nicht beteiligt werden, denn Server und Client sind auf dem selben PC.

        Was passiert wenn der Server Open erfolgreich ausführt welche Events kommen dann in TServer an

        Comment


        • #5
          also, das sind ja ganz schön viele fragen. das mit dem fehler 1006 hab ich nich gefunden (wenn du nochma was suchst, guck einfach in die dateien winsock.h und winsock2.h, das ist der code auf dem die componenten und eigendlich jeglicher windows netzwerkcode aufbauen... da sind auch die fehlerconstanten deklariert, nur 1006 fehlt). versuch doch mal genau die stelle rauszufinden, wo das prog hängen bleibt (mit durchtracen) oder was die fehlermeldung auslöst... ob irgendwas kaputt ist kannst du ja einfach ausprobieren, indem du irdendein netzwerkprog laufen lässt, was eigendlich funktionieren sollte. wie gesagt arbeiten (so ziemlich) alle mit winsock. wenn du keins findest, kann ich dir auch schnell eins schreiben und es dir schicken oda so.. ich benutze allerdings bcb 5 und ich weiss nich, was es da in sachen netzwerkzeug für unterschiede zwischen 3 und 5 gibt. desswegen kann ich dir bei den events auch nur bedingt helfen. bei mir gibt es da, wenn du den server geöffnet hast, OnListen. dieser event wird aufgerufen, kurz bevor der server in den 'horchmodus' übergeht, also auf clients wartet. OnConnect wird aufgerufen, wenn die verbindung steht.. dann gibt es noch OnLookup. das passiert, wenn du keine ip, sondern einen namen (z.b. ftp.bla.com ...ob bei windows computernamen auch, weiss ich nich) angibst und die componente dann versucht die passende ip rauszukriegen.

          hoffe, das hilft dir

          sandma

          Comment


          • #6
            Nochmals Danke Sandman!

            Ich war wohl ein wenig hecktisch wie ich den Server zusammengeclickt habe ! Ich habe Tag auf 5000 gestellt statt Port zu verändern. Naja jetzt gehts ! Seltsam ist nur das die Server Anwendung keine Meldungen ausgibt, denn ich habe OnClientConnect, und noch einige andere definiert. Aber der gegenseitige Austausch des Names usw. funktioniert.

            cia

            Comment


            • #7
              Ach ja ich habe den Fehler falsch geschrieben. Es muss heissen "10061&quot

              Comment


              • #8
                mannomann... wie programmierst du denn? ...naja ich hab nochma der fehler nachgeguckt. der war connection refused. aber das ist ja jetzt eh egal!

                naja, dann wünsch ich dir noch viel spass beim netzwerkprogrammieren.

                cu sandma

                Comment


                • #9
                  Ich denke das liegt an Builder, da geht alles viel zu leicht. Normalerweise renne ich Tag und Nacht mit einem Blatt Papier herum, auf das ich irgendwelche Sachen schreibe. Erst Tage später, wenn ich jedes Detail beücksichtigt habe starte ich Borland und schreibe das Modul. Ich habe erst seit ein paar Tagen Borland Builder 3, alles was nun mit OWL zusammenhängt wird nur noch angeclickt und auf dem Fenster positioniert.

                  QUO VADIS PROGRAMMIERER

                  cu
                  Andrea

                  Comment


                  • #10
                    naja, da hast du auch wieder recht (ich hab builder auch erst seit ca 2 wochen), allerdings schreib ich immernoch jede menge zettelchen, weil man bei machen sachen doch schon noch ne ganze menge überlegen muss... mann kann halt nich alles zusammenclicken ich find es eben nur gut, das ich mich um den ganzen windows-fenster-und-buttons-schrott nich selber kümmern muss. aber sowas wie die internet componenten will ich dann schon selber machen (mach ich ja auch), dann kann man wenigstens sagen, das man das prog 'sogut wie' selber geschrieben hat und das find ich schon wichtig (windoof-fenster 'programmierung' halte ich nämlich nich für programmieren, sondern für potenzielles ins-irrenhaus-bringen)... ausserdem isses viel COOLER, wenn man sich die componenten selber schreibt (was wiederum nich so einfach iss -> zettelschreiben ... aber s macht ja spass!).

                    na dann machs gut

                    sandman :

                    Comment

                    Working...
                    X