Server Problem[Ein neuer Fehler ist aufgetreten]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Bionical

Betreff: Server Problem[Ein neuer Fehler ist aufgetreten]

BeitragFr, Jan 27, 2006 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy!
Ich hab an DAs Code ein bisschen gearbeitet und das ist rausgekommen:
Code: [AUSKLAPPEN]

Graphics 640,480,16,2
AppTitle "Server"
Const port=50000
Global s.spieler
Global stream
Global server

Type spieler
   Field user$
   Field stream
   Field x
   Field y
   Field z
End Type

server=CreateTCPServer(port)
If server<>0 Then
   Print "Gestartet....."
Else
   Print "Fehler"
   End
EndIf
While Not KeyHit(1)
signal=""
verbindung=AcceptTCPStream(server)
on_spieler()
If verbindung Then
   stream=verbindung
If ReadAvail(verbindung) Then
   signal$=ReadLine$(verbindung)
EndIf
Else
For s=Each spieler
If ReadAvail(s\stream) Then
   signal$=ReadLine$(a\stream)
   stream=a\stream
EndIf
Next
EndIf


If signal<>"" Then
Select signal$
   Case "new"
      user_name$=ReadLine$(verbindung)
      s.spieler=New spieler
      s\user$=user_name$
      s\stream=verbindung
   Case "message"
      user_name$=ReadLine$(stream)
      new_message=ReadLine$(stream)
      Print user_name$+": "+new_message$
For s=Each spieler
If Not a\stream=stream Then
   WriteLine a\stream,"message"
   WriteLine a\stream,user$
   WriteLine a\stream,new_message$
EndIf
Next

For s=Each spieler
If a\user$=user$ Then
   Delete s.spieler
EndIf
Next

Wend

Function on_spieler()
Text 500,20,"Spieler: "
y=20
For s=Each spieler
y=y+20
Text 500,y,a\user$
Next
End Function



Nur leider funzt der Code nicht......
Ich hab keinen (offensichtlichen Wink ) Fehler entdeckt.

mfg
Bionical
Das Leben ist zum Proggen da!

www.livingsoftware.at.tc
Mit selbstgehosteten Forum!
Das Forum ist leider gerade down.... Dank Funpic.de -.-
  • Zuletzt bearbeitet von Bionical am Sa, Jan 28, 2006 17:36, insgesamt 3-mal bearbeitet

dominik

BeitragFr, Jan 27, 2006 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
zeilen einrücken wäre nicht schlecht, wenn du willst das sich andere Leute deinen Code antuen.

mir is jetzt nur aufgefallen das da auf jedefall mal nen "end select" fehlt.

kleiner Tipp makiere wenn du ne Bedingung öffnest (if, select, repeat) auch immer gleich wieder gleich das Ende und füg deinen Code erst danach ein. dann verlierst du bei Verkapselungen nicht den Überblick.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Bionical

BeitragFr, Jan 27, 2006 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also auch wenn ich end select hinzufüge geht das Programm immer noch nicht. naja zeilen einrücken........ ....... ich esse gerne spaghetti( *hüstel* code) Wink
ne jetzt ernst ich mach mal ein paar eingerückte zeilen rein

mfg
Bionical
Das Leben ist zum Proggen da!

www.livingsoftware.at.tc
Mit selbstgehosteten Forum!
Das Forum ist leider gerade down.... Dank Funpic.de -.-

Bionical

BeitragSa, Jan 28, 2006 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wie gesagt das Problem ist noch nicht gelöst.....
Ich wollte nur nochmal auf den Post aufmerksam machen. Confused
Das Leben ist zum Proggen da!

www.livingsoftware.at.tc
Mit selbstgehosteten Forum!
Das Forum ist leider gerade down.... Dank Funpic.de -.-

Mr.Hyde

Newsposter

BeitragSa, Jan 28, 2006 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
 Graphics 640,480,16,2
AppTitle "Server"
Const port=50000
Global s.spieler
Global stream
Global server

Type spieler
   Field user$
   Field stream$
   Field x
   Field y
   Field z
End Type

server=CreateTCPServer(port)
If server<>0 Then
   Print "Gestartet....."
Else
   Print "Fehler"
   End
EndIf

While Not KeyHit(1)
signal=""
   verbindung=AcceptTCPStream(server)
   on_spieler()
   If verbindung Then
      stream=verbindung
      If ReadAvail(verbindung) Then
           signal=ReadLine$(verbindung)
      EndIf
   Else
      For s=Each spieler
         If ReadAvail(s\stream) Then
            signal=ReadLine$(s\stream)
            stream=s\stream
         EndIf
      Next
   EndIf


   If signal<>"" Then
      Select signal
         Case "new"
            user_name$=ReadLine$(verbindung)
            s.spieler=New spieler
            s\user$=user_name$
            s\stream=verbindung
         Case "message"
            user_name$=ReadLine$(stream)
            new_message=ReadLine$(stream)
            Print user_name+": "+new_message
         For s=Each spieler
            If Not s\stream=stream Then
                  WriteLine s\stream,"message"
                 WriteLine s\stream,user$
                  WriteLine s\stream,new_message
            EndIf
         Next
      End Select

      For s=Each spieler
         If s\user$=user$ Then
               Delete s.spieler
         EndIf
      Next
   EndIf

Wend

Function on_spieler()
Text 500,20,"Spieler: "
y=20
For s=Each spieler
y=y+20
Text 500,y,s\user$
Next
End Function


Also bei mir läuft der Code jetzt!

1. Alles eingerückt
2. End Select hinzugefügt
3. ein Endif hinzugefügt
4. types (a) durch s ersetzt, da es bei dir nur s gibt...
5. weitere Kleinigkeiten

hättest du den Debugger angeschaltet und die Fehler, die er dann anzeigt gelesen hättest du eigentlich von selbst drauf kommen können!

Bionical

BeitragSa, Jan 28, 2006 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja danke.
##### edit #####
es kommt eine fehler meldung namens "Stream does not exist".....
Ich habe verschiedene Port ausprobiert aber der Fehler besteht weiterhin
Das Leben ist zum Proggen da!

www.livingsoftware.at.tc
Mit selbstgehosteten Forum!
Das Forum ist leider gerade down.... Dank Funpic.de -.-

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group