[BB]LAN-Chat testen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Leonb

Betreff: [BB]LAN-Chat testen

BeitragSo, Feb 20, 2005 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich habe mit einem Tuto einen kleinen LAN-Chat mit BlitzBasic gecodet
Nur kann ich den selber nicht testen Crying or Very sad
Kann wer den für mich testen?

Es sind zwei Programme:
Einmal das Prog. für den Host,
und einmal für die, die joinen wollen!

Hier das für den Host:
Code: [AUSKLAPPEN]
[syntax="bb"]
spiel=HostNetGame("Network-Chat")

;Testen ob das Spiel von mir gehostet wird:
If spiel=2
Else
Print "Hosten fehlgeschlagen!"
End
End If

;Name des Spielers:
name$=Input("Wie willst du heißen? ")

;Spieler erstellen (ihm wird eine Nummer zugewiesen)
spieler=CreateNetPlayer(spieler_name$)

;Prüfen, ob der Spieler erstellt werden konnte
Select spieler

Case 0
Print "Error! Fehler beim erstellen des Spielers!"

Default
Print "Wilkommen  im Spiel "+spieler_name
Print "Deine Nummer im Network-Chat: "+spieler
Print "Drücke Esc um den Chat zu verlassen,
Print "und F1 um eine Nachricht zu verschicken"
End Select


;bei Esc bricht der "Chat" ab
Repeat


If RecvNetMsg() Then  ;wenn wir eine Nachricht erhalten haben:

nachricht=NetMsgType() ;was ist das für eine Nachricht?

;Nachricht-Möglichkeiten:
;--------------------------------------------------------------------
; 1-99 - Nachrichten von anderen Spielern
; 100 - Ein neuer Spieler ist der Netzwerksession beigetreten
; 101 - Ein Spieler hat die Session verlassen
; 102 - Der Host hat die Session verlassen und der eigene Computer ist nun Host
; 200 - Ein Problem ist aufgetreten und die Session muß beendet werden
;-------------------------------------------------------------------------------------------

If nachricht=100
Color 255,0,0 ;Farbe: rot
Print "Ein neuer Spieler ist der Netzwerksession beigetreten"

Else If nachricht=101
Color 255,0,0 ;Farbe: rot
Print "Ein Spieler hat die Session verlassen"

Else If nachricht=102
Color 255,0,0 ;Farbe: rot
Print "Der Host hat die Session verlassen und der eigene Computer ist nun Host"

Else If nachricht=200
Print "Ein Problem ist aufgetreten und die Session muß beendet werden"

ElseIf nachricht > 0 And nachricht < 100; Nachricht ist von einem Spieler:

spieler_nummer = NetMsgFrom() ;Nummer des Spielers erfahren
spieler_name = NetPlayerName(spieler_nummer) ;Spierler Name
nachricht = NetMsgData$() ;Nachricht

;alles ausgeben:
Print "Du hast eine Nachricht von "+spieler_name+"bekommen!"
Print "Seine Nummer: "+spieler_nummer
Print "Die Message lautete:"
Print nachricht

End If
End If

If KeyHit(59) Then Gosub Senden
Until KeyHit(1)

StopNetGame
End

.Senden
Print "An wen willst du eine Nachricht schicken? "
to_name$=Input("Name:  ") ;an wen? (name)
to_number=Input("Nummer von "+to_name$+"?  ");an wen? (nummer)
message_to_send$=Input("Deine Message:   ");message:
Print "Deine Message:"
Print "From "+name+" to "+to_name+" ("+spieler+" to "+to_number+")"
Print message_to_send$

SendNetMsg 1, message_to_send, spieler, to_number
Return[/syntax]


Hoffe es ist auch alles richtig..........

Und das für die Joiner:

Code: [AUSKLAPPEN]

[syntax="bb"]
;Name des Spielers:
name$=Input("Wie willst du heißen? ")

;Spieler erstellen (ihm wird eine Nummer zugewiesen)
spieler=CreateNetPlayer(spieler_name$)

spiel = JoinNetGame("Network-Chat", 127.0.0.1)


;Prüfen, ob der Spieler erstellt werden konnte
Select spieler

Case 0
Print "Error! Fehler beim erstellen des Spielers!"

Default
Print "Wilkommen  im Spiel "+spieler_name
Print "Deine Nummer im Network-Chat: "+spieler
Print "Drücke Esc um den Chat zu verlassen,
Print "und F1 um eine Nachricht zu verschicken"
End Select


;bei Esc bricht der "Chat" ab
Repeat


If RecvNetMsg() Then  ;wenn wir eine Nachricht erhalten haben:

nachricht=NetMsgType() ;was ist das für eine Nachricht?

;Nachricht-Möglichkeiten:
;--------------------------------------------------------------------
; 1-99 - Nachrichten von anderen Spielern
; 100 - Ein neuer Spieler ist der Netzwerksession beigetreten
; 101 - Ein Spieler hat die Session verlassen
; 102 - Der Host hat die Session verlassen und der eigene Computer ist nun Host
; 200 - Ein Problem ist aufgetreten und die Session muß beendet werden
;-------------------------------------------------------------------------------------------

If nachricht=100
Color 255,0,0 ;Farbe: rot
Print "Ein neuer Spieler ist der Netzwerksession beigetreten"

Else If nachricht=101
Color 255,0,0 ;Farbe: rot
Print "Ein Spieler hat die Session verlassen"

Else If nachricht=102
Color 255,0,0 ;Farbe: rot
Print "Der Host hat die Session verlassen und der eigene Computer ist nun Host"

Else If nachricht=200
Print "Ein Problem ist aufgetreten und die Session muß beendet werden"

ElseIf nachricht > 0 And nachricht < 100; Nachricht ist von einem Spieler:

spieler_nummer = NetMsgFrom() ;Nummer des Spielers erfahren
spieler_name = NetPlayerName(spieler_nummer) ;Spierler Name
nachricht = NetMsgData$() ;Nachricht

;alles ausgeben:
Print "Du hast eine Nachricht von "+spieler_name+"bekommen!"
Print "Seine Nummer: "+spieler_nummer
Print "Die Message lautete:"
Print nachricht

End If
End If

If KeyHit(59) Then Gosub Senden
Until KeyHit(1)

StopNetGame
End

.Senden
Print "An wen willst du eine Nachricht schicken? "
to_name$=Input("Name:  ") ;an wen? (name)
to_number=Input("Nummer von "+to_name$+"?  ");an wen? (nummer)
message_to_send$=Input("Deine Message:   ");message:
Print "Deine Message:"
Print "From "+name+" to "+to_name+" ("+spieler+" to "+to_number+")"
Print message_to_send$

SendNetMsg 1, message_to_send, spieler, to_number
Return[/syntax]


Fehler bitte melden (hoffe es sind nicht allzuviele Wink )[/syntax]
meine HP:
http://www.scz.de.ms
  • Zuletzt bearbeitet von Leonb am So, Feb 20, 2005 13:47, insgesamt einmal bearbeitet
 

IonPainter

BeitragSo, Feb 20, 2005 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
klar kannst du den testen, verbinde mit dem client einfach auf 127.0.0.1
 

Leonb

BeitragSo, Feb 20, 2005 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
klar kannst du den testen, verbinde mit dem client einfach auf 127.0.0.1

Verstehe ich nicht.........

Das ist mit DirecPlay geschrieben, und 127.0.0.1 bin doch ich (localhost)
????????
meine HP:
http://www.scz.de.ms

simi

BeitragSo, Feb 20, 2005 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Eben, dann kannst du mit dir selbst chatten Wink
 

Leonb

BeitragSo, Feb 20, 2005 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie?

*Ich bin ein NooB* Crying or Very sad
meine HP:
http://www.scz.de.ms

jhabekost

BeitragSo, Feb 20, 2005 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
host prog starten->hosten, joind prog starten->localhost (oder 127.0.0.1) joinden
beim host porggie wat schreiben und gucken wies beim joind proggie ankommt... und andersrum...
 

Leonb

BeitragSo, Feb 20, 2005 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
achso Idea
jetzt hab ichs kapiert Wink

edit:
funzt nicht Crying or Very sad
Ich bekomme eine Nachricht, dass das Multiplayer Game nicht existiert!
Liegt es daran, dass ich nur die Demo v. habe, und deswegen dat nicht als EXE gestartet habe?

Wenn ja, kann mir jemand die zwei EXE Dateioen erstellen Very Happy
meine HP:
http://www.scz.de.ms
 

Leonb

BeitragDi, Feb 22, 2005 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, nun klappt alles!
Der Fehler lag im Quellcode!
Nun klappt alles
Ich kann nun mit mir selber chatten Laughing

Man macht das Spaß Wink

Und wie bekomme ich die Nummer von einem anderen raus?
Das ich nicht 127.0.0.1 kontaktiere?
meine HP:
http://www.scz.de.ms
 

IonPainter

BeitragDi, Feb 22, 2005 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
na wenn der andere internet hat geht er auf www.wasistmeineip.de und da steht dann die ip Wink

wenns über lan gehen soll, kommandozeile auf (ausführen -> cmd) und ipconfig eingeben dann wird die lokale ip angezeigt

regaa

BeitragDi, Feb 22, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
oder du bastelst dir einfach ein phpscript folgenden inhaltes:

<?php
print $REMOTE_ADDR;
?>

und liest es in blitz aus. Laughing
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Leonb

BeitragDi, Feb 22, 2005 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, das mit dem Befehl ipconfig ist sehr gut!
(Werde ich mal für eine BATCH Datei schreiben, die das macht....)

Das mit dem PHP is etwas umständlich, da dann ja auf dem Rechner
was wie XAMPP, Apache, oder so drauf sein muss Wink


und das mit "ipconfig" funzt nicht fürs Internet?
meine HP:
http://www.scz.de.ms
 

IonPainter

BeitragDi, Feb 22, 2005 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
nein wie gesagt dafür die www adresse...

auch lokal aufm apache würd es nicht klappen

regaa

BeitragDi, Feb 22, 2005 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Leonb hat Folgendes geschrieben:

Das mit dem PHP is etwas umständlich, da dann ja auf dem Rechner
was wie XAMPP, Apache, oder so drauf sein muss Wink


soll ja auch nur der server haben. oder du vergibst dir eine feste ip und die clientsoftware sucht sich beim server die ip.txt aus, die mit der statischen ip gefüllt ist. Wink
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Leonb

BeitragDi, Feb 22, 2005 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke!
meine HP:
http://www.scz.de.ms
 

Leonb

BeitragDi, Feb 22, 2005 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, das mit dem ipconfig geht aber nur Online!
Nicht offline
Aber was ist den mit der IP im Internetprotokoll?
Ist das die Lokale IP?
Oder die fürs Netz?
meine HP:
http://www.scz.de.ms
 

biegl

BeitragDi, Feb 22, 2005 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Da stehen beide ! Sowohl lokal als auch die fürs netz!

nX^

BeitragDo, Feb 24, 2005 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier das mal:

Code: [AUSKLAPPEN]
Const W% = 640,H% = 480
Const MSGMAX% = 70
Global nettype% = 0,netdata$ = "",netfrom% = 0,netname$ = ""
Global msg$ = ""
Type chatter
   Field id%
   Field name$
End Type
Global my.chatter

;screen
AppTitle "Mini-Chat"
Graphics W,H,0,2
SetBuffer BackBuffer()

;start
Fade(0,255)
ausgabe = StartNetGame()
Fade(255,0)
If ausgabe <> 0 Then
   my.chatter = New chatter
   my\name = InputLetters("Your Name: ",3,8)
   my\id = CreateNetPlayer(my\name)
   Locate 0,20
Else
   RuntimeError "No Connection!"
EndIf

;### MAIN ###

Repeat

   ;input/send
   key = GetKey()
   If key >= 32 And key <= 126 And Len(msg) < MSGMAX Then msg = msg+Chr(key)
   If KeyHit(14) And Len(msg) > 0 Then msg = Left(msg,Len(msg)-1)
   If KeyHit(28) And msg <> "" Then SendNetMsg 1,msg,my\id,0,1 : Print my\name+": "+msg : msg = ""

   ;receive
   While RecvNetMsg() = 1
      nettype = NetMsgType()
      netdata = NetMsgData()
      netfrom = NetMsgFrom()
      netname = NetPlayerName(netfrom)
      If nettype = 1 Then
         Print netname+": "+netdata
      ElseIf nettype = 100 Then
         other.chatter = New chatter
         other\id = netfrom
         other\name = netname
         Print ">>> "+other\name+" has joined <<<"
      ElseIf nettype = 101 Or nettype = 102 Then
         For leaving.chatter = Each chatter
            If leaving\id = netfrom Then
               Print ">>> "+leaving\name+" has left <<<"
               Delete leaving.chatter
            EndIf
         Next
      EndIf
   Wend

   ;output
   Color 70,70,70
    Rect 0,0,640,18
   Color 255,255,255
    Line 0,18,W,18
    Text 2,2,"SEND: "+msg

Flip
Until KeyHit(1)
Fade(0,255)
End

;### FUNC ###

Function InputLetters$(infotxt$,min%,max%)
   Local key%,txt$
   Repeat
   Cls
      key = GetKey()
      If (Len(txt) < max) And ((key >= 65 And key <= 90) Or (key >= 97 And key <= 122)) Then txt = txt+Chr(key)
      If KeyHit(14) And Len(txt) > 0 Then txt = Left(txt,Len(txt)-1)
      If KeyHit(28) Then
         If Len(txt) >= min Then
            Exit
         Else
            Text 0,0,"Number of letters must be >= "+min+" and <= "+max : Flip
            FlushKeys() : WaitKey() : FlushKeys()
         EndIf
      EndIf
      Text 0,0,infotxt+""+txt
   Flip
   Forever
   Return txt
End Function
Function Fade(von%,nach%)
   If von < nach Then
      For i = von To nach Step 5
         ClsColor i,i,i : Cls : Flip
      Next
   ElseIf von > nach Then
      For i = von To nach Step -5
         ClsColor i,i,i : Cls : Flip
      Next
   EndIf
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group