Problem mit Netzwerk-Prog

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Aldi

Betreff: Problem mit Netzwerk-Prog

BeitragDo, Sep 30, 2004 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich wollte mir mal Netzwerkprogrammierung ansehen und hab mir ein Chat-Prog geschrieben. Da ich nur einen PC hab, kann ich das Programm nur auf diesem einen ausprobieren. Logischerweise sind es zwei Programme(Host, Client). Die Verbindung kriegen sie hin. Wenn aber beide gestartet sind und ich Client schließe, sollte auf dem Host-Programm angezeigt werden, dass sich Client abgemeldet hat. Jedoch schreibt der PC statt:

Code: [AUSKLAPPEN]

Client hat die Verbindung abgebrochen

Code: [AUSKLAPPEN]

<unknow> hat die Verbindung abgebrochen


Woran liegt das? Ich hab das Programm so geschrieben, wie René Meyer es in seinem Buch vorgemacht hat.

Bitte helft mir!
 

JRQ

BeitragDo, Sep 30, 2004 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code?
Zitat:
<cutthroat> wobei ichs net peil warum kaum spiele in blitz 3d geproggt werden die wirklich seriös sind (bis auf die communitys, meine also kommerziell) wenn es ja so einfach und gut is
<Tobi> Wir brauchen kein Geld! Wir haben ja schon Blitz3D!
<Tobi> All die anderen, die für Geld programmieren, machen das nur, damit sie Blitz3D leisten können!
 

Aldi

BeitragSa, Okt 02, 2004 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hostprogramm:

Code: [AUSKLAPPEN]

AppTitle "nt_host"
Name$= "nettry"
Spiel= HostNetGame(Name)
Color 255,0,0
If Spiel= 0 Then Print "Netz konnte nicht gestartet werden"
If Spiel= 1 Then Print "Netz gestartet (Client)"
If Spiel= 2 Then Print "Nezt gestartet (Host)"
Spieler$= "Host"
IchNr= CreateNetPlayer(Spieler$)
Repeat
If RecvNetMsg()= 1 Then
 Color 255,0,0
 Select NetMsgType()
  Case 100 Print NetPlayerName$(NetMsgFrom()) + " ist dem Netz beigetreten."
  Case 101 Print NetPlayerName$(NetMsgFrom()) + " hat die Verbindung abgebrochen."
  Case 102 Print NetPlayerName$(NetMsgFrom()) + "(Host) ist ausgetreten. Du bist nun Host."
  Case 200 Print "Die verbindung wurde unterbrochen. Kein Host verfügbar."
  Case 2 Print "Du wurdest von " + NetPlayerName$(NetMsgFrom()) + "aus dem netz geworfen." : Delay 1500 : Exit
  Default Color 255,255,255 : Print NetPlayerName$(NetMsgFrom()) + ": " + NetMsgData$()
 End Select
EndIf

If KeyHit(57)= 1 Then
 Color 255,255,255
 msg$= Input$("Host: ")
 SendNetMsg 1,msg$,IchNr,0
 FlushKeys
EndIf

If KeyHit(207)= 1 Then
 msg$= Input$("Host: ")
 SendNetMsg 2,msg$,IchNr,0
EndIf

Until KeyHit(1)= 1

StopNetGame

End



Clientprogramm:

Code: [AUSKLAPPEN]

AppTitle "nt_client"
Color 255,0,0
IP$= Input("IP des Hosts: ")
Print "Verbindung wird aufgebaut..."
Name$= "nettry"
Spiel= JoinNetGame(Name,IP$)
If Spiel= 0 Then Print "Netz konnte nicht gestartet werden"
If Spiel= 1 Then Print "Netz gestartet (Client)"
If Spiel= 2 Then Print "Netz gestartet (Host)"
Spieler$= "Client"
IchNr= CreateNetPlayer(Spieler$)
Repeat
If RecvNetMsg()= 1 Then
 Color 255,0,0
 Absend$= NetMsgFrom()
 Select NetMsgType()
  Case 100 Print NetPlayerName$(NetMsgFrom()) + " ist dem Netz beigetreten."
  Case 101 Print NetPlayerName$(NetMsgFrom()) + " hat die Verbindung abgebrochen."
  Case 102 Print NetPlayerName$(NetMsgFrom()) + "(Host) ist ausgetreten. Du bist nun Host."
  Case 200 Print "Die verbindung wurde unterbrochen. Kein Host verfügbar."
  Case 2 Print "Du wurdest von " + NetPlayerName$(NetMsgFrom()) + " aus dem netz geworfen." : Delay 1500 : Exit
  Default Color 255,255,255 : Print NetPlayerName$(NetMsgFrom()) + ": " + NetMsgData$()
 End Select
EndIf
If KeyHit(57)= 1 Then
 Color 255,255,255
 msg$= Input$("Client: ")
 SendNetMsg 1,msg$,IchNr,0
 FlushKeys
EndIf

If KeyHit(207)= 1 Then
 msg$= Input$("Client: ")
 SendNetMsg 2,msg$,IchNr,0
EndIf

Until KeyHit(1)= 1

StopNetGame

End

 

Aldi

BeitragSo, Okt 03, 2004 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Crying or Very sad Kann mir denn niemand helfen???

The Yeti

BeitragSo, Okt 03, 2004 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir nicht sicher, aber könnte das daran liegen, dass der Spieler nicht mehr existiert (er ist ja rausgeflogen), und der Name dieses Absenders deshalb nicht mehr abrufbar ist?
 

Aldi

BeitragSo, Okt 03, 2004 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, dann würde die Nachricht ja keinen großen Sinn machen und bräuchte eigentlich gar nicht vom System gesendet werden.

The Yeti

BeitragMo, Okt 04, 2004 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, damit man weiß, dass überhaupt ein Spieler das Spiel verlassen hat. Es gäbe ja dann andere Möglichkeiten, herauszufinden, wer das war; z.B. indem man alle übrigen Spieler eine Nachricht senden lässt.
Außerdem sehe ich bei dir keinen anderen möglichen Fehler.
Aber wie gesagt: sicher bin ich mir nicht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group