Problem mit Netzwerk-Prog
Übersicht

AldiBetreff: Problem mit Netzwerk-Prog |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() |
||
![]() |
The Yeti |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, dann würde die Nachricht ja keinen großen Sinn machen und bräuchte eigentlich gar nicht vom System gesendet werden. | ||
![]() |
The Yeti |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group