Server-Client Programm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mavi

Betreff: Server-Client Programm

BeitragMo, Sep 07, 2009 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo BB Gemeinde,
mein Problem steht darin ich möchte ein Simples SERVER-CLIENT Programm schreiben um die Funktionen zulernne wie sowas abläuft etc.

Nur ich hab keinen blassen schimmer wo ich anfangen soll, was muss in den SERVER-Quelltext, was in den Client Quelltext?

Habt ihr hilfreiche Links zur erklärung, dann bitte postet....

danke mavi (:

Tankbuster

BeitragMo, Sep 07, 2009 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal solltest du dir überlegen, welches Protokoll du verwenden willst. TcP oder UDP?

Das wesentliche bei einem Server-Client programm ist, dass der Client immer zuerst den Server anschreibt. Auf dem Server wird der Client dann als Online aufgelistet, und so kann ein anderer Client dann z.b. sehen, wer online ist.

Befehle:
https://www.blitzforum.de/help/?cat=3
Twitter
Download Jewel Snake!
Windows|Android
 

mavi

BeitragMo, Sep 07, 2009 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin für TCP (:
 

da_poller

BeitragMo, Sep 07, 2009 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
dann findest du hier: https://www.blitzforum.de/help/?subcat=2 ALLE benötigten befehle..

in robs bb kurs findest du ein bsp programm für udp(was denke ich auch auf tcp umgearbeitet werden kann..

wünsch dir viel erfolg.
 

mavi

BeitragMo, Sep 07, 2009 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
danke...ich hab mal was geschrieben auch aus der hilfe halb übernommen reicht aber für den anfang:
Code: [AUSKLAPPEN]
Graphics 400,300,0,2

AppTitle "Client"
Print "Enter IP ADRESS: "
ip$ = Input()
Stream = OpenTCPStream(ip$, 6112)
If Not stream Then RuntimeError "FAILED"

Print "Verbinde..."

While Not KeyHit(1)
   If x=0 Then
      Print "Connected!"
      x=1
   EndIf
Wend
CloseTCPStream(stream)
End

Code: [AUSKLAPPEN]
;SERVER
AppTitle "Server"
Graphics 400,300,0,2

;Server öffnen
stream = CreateTCPServer(6112)

Print "Server eröffnet!"

Local NewClient, ClientStream


While Not KeyHit(1)
NewClient = AcceptTCPStream(stream)
   If NewClient
      ClientStream = NewClient
      Print "Client verbunden"
   EndIf
   
Wend

If ClientStream Then CloseTCPStream(ClientStream)
CloseTCPServer(stream)
End


mein problem ist es wenn ich jetzt die ip änder und nem freund das progg gebe kan nder nciht connected, firewall aus etc....ich find das problem einfach nicht, bitte helft mir (;

robotx

BeitragMo, Sep 07, 2009 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls der Server hinter einem Router läuft, musst du die Ports im Router öffnen ("port forwarding").
www.botbomb.robotzgames.de
www.robotzgames.de
 

mavi

BeitragDi, Sep 08, 2009 8:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hey ich habe die ports...auf 6112 laufen, das sind die ports für WARCRAFT 3...die ich standartmäßig schon aufgemacht habe zum zocken!

will immernoch nicht laufen! :O

Wo kann ich noch nach fehlern suchen?

Dottakopf

BeitragDi, Sep 08, 2009 9:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns Im LAN läuft sollte es übers www auch laufen.

Evt liegt hier irgendwo der Fehler:
- Falsche öffentliche Ip des servers
- Probiere mal einen anderen Port den du auf deine Server IP forwandest(z.B. 7142)
- Falls DHCP aktiviert mal auf statisch umstellen
- Evt. Stört eine Firewall(Local oder aufn Router)


Es gibt router die ums verrecken einfach keine "blitzbasic sachen" durchlassen(Spreche aus erfahrung).
Das war so ein Zyxel ka was...
Abhilfe :
-Lass einen Freund den server erstellen und versuche zu joinen(natürlich muss er auch port forwanding
machen)
-Verbinde dich mittels einer PPPoe-Verbindung direkt mit dem Internet(Router als modem verwenden),
solltest du davon aber keine Ahnung haben, rate ich dir von diesem weg ab.

Einer der Punkte muss es sein. Tendiere aber stark zu falschem Port forwanding oder Firewall

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Shark

BeitragDi, Sep 08, 2009 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Tipp für die Zukunft Mavi.
Du kannst auch den Client und Server in einer Exe vereinen.
Vielleicht ist es für Netzwerkanfänger etwas schwieriger den Überblick zu behalten.
Es hat aber den großen Vorteil, das man nicht von einem Code zum andern immer rüber schauen muss
und man muss später keine zwei Codes compilieren.

So könnte es aussehen.

Code: [AUSKLAPPEN]
Graphics 400,300,0,2
.anfang
Local server% = Input("Server(1) oder Client(0):")

Local stream

Select server%
   Case 1
      ;SERVER
      AppTitle "Server"
      
      ;Server öffnen
      stream = CreateTCPServer(6112)
      
      Print "Server eröffnet!"
      
      Local NewClient, ClientStream
      While Not KeyHit(1)
         NewClient = AcceptTCPStream(stream)
         If NewClient
            ClientStream = NewClient
            Print "Client verbunden"
         EndIf
         
      Wend
      If ClientStream Then CloseTCPStream(ClientStream)
      CloseTCPServer(stream)
      End
   Case 0
      ;Client
      AppTitle "Client"
      Local ip$ = Input("Enter IP ADRESS: ")
      stream = OpenTCPStream(ip$, 6112)
      If Not stream Then RuntimeError "FAILED"

      Print "Verbinde..."

      While Not KeyHit(1)
         If x=0 Then
            Print "Connected!"
            x=1
         EndIf
      Wend
      CloseTCPStream(stream)
      End
   Default Goto anfang
End Select


Falls du es nicht weisst, man kann ein Netzwerkprogramm zwei mal auf seinem eigenen Pc starten. Einmal als Server und einmal als Client. Die eigene Ip des Rechners(localhost) ist 127.0.0.1 .

Also bei mir funktioniert der Code Wink

mfg Shark

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group