Problem bei Server Client MIX

Anfängerfragen zum Programmieren mit PureBasic.
Mathias-Kwiatkowski
Beiträge: 118
Registriert: 26.06.2005 23:06
Wohnort: Dinslaken

Problem bei Server Client MIX

Beitrag von Mathias-Kwiatkowski »

okey nun habe ich mir erst mal meinen server programmiert damit ich weiss wie man die Befehle anzuwenden hat...

das funktioniert auch!

Code: Alles auswählen

InitNetwork()


Port = 6832
Buffer = AllocateMemory(1000)


CreateNetworkServer(Port)





OpenConsole()
Repeat

Result = NetworkServerEvent() 

If result=1 
PrintN ("Neuer Client")
EndIf

If result=2
ClientID = NetworkClientID() 
PrintN ("LESEN")
ReceiveNetworkData(ClientID , Buffer, 1000)
PrintN (PeekS(Buffer))
EndIf

If result=4
PrintN ("Verlassen")
EndIf
ForEver
CloseConsole()
und auf dem gleichen rechner habe ich auch den client gestartet,
der ist so aus dem beispiel von pb übernommen worden!

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  MessageRequester("PureBasic - Client", "Client connected to server...", 0)
  
  SendNetworkString(ConnectionID, "An hello from a client !!! :-)")
    
  MessageRequester("PureBasic - Client", "A string has been sent to the server, please check it before quit...", 0)
  
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End   
so nun mein problem,
wie soll ichs beschreiben..... ah, sagen wir mein server prog ist am laufen!
und einer von euch startet den client, dann bekomme ich keine resulnanz, das leigt daran das ich nicht weiss wie ich das internet miteinbeziehen muss, kann mir dabei jemand helfen?

ich hoffe ich habe mich deutlich genug ausgedrückt. Danke für alles und jede antwort im vorraus...!
Benutzeravatar
DataMiner
Beiträge: 220
Registriert: 10.10.2004 18:56

Beitrag von DataMiner »

Du musst deinen "Server" zur Außenwelt hin sichtbar machen. Gesetzt den Fall du hast einen kleines Netzwerk mit nem DSL-Router.
Erster Schritt: dyndns.org. Damit aus deiner dynamischen IP ne quasi statische wird. Viele Router bieten die Möglichkeit diesen Dienst direkt einzubinden.
Zweiter Schritt: Port aus deinem Beispiel (6832) im Router auf den PC mit dem Server-Proggi forwarden und natürlich die Firewall auf dem PC für den Port löchrig machen.
Willst du nur innerhalb deines Netzwerks bleiben, reicht die Angabe der IP deines "Server"-PCs.
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
Mathias-Kwiatkowski
Beiträge: 118
Registriert: 26.06.2005 23:06
Wohnort: Dinslaken

Beitrag von Mathias-Kwiatkowski »

okey danke ich habe einen router! und kleines netz!
du sagst ich muss nur den port sichtbar machen...

und was bedeutet des mit dyn...??? was is das und was muss ich dort machen?

und wie ist es bei den anderen die mein programm nutzen wollen also z.b. einen chat!

und muss ich auf dem router den port 6832 freigeben?
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

Was es mit dem DynDNS auf sich hat iss ganz leicht erklärt:
Im normalfall haste keine feste IP Adresse im Internet, die wird dir jedesmal beim einwählen vom ISP (Internet Service Provider, i.e. z.B. T-Online, Arcor u.ä.) zugewiesen. Würdest du nun deinen Clients die IP geben, die du heute hast, könnten sie nur auf deinen server connecten, bis du eben eine neue IP zugewiesen bekommst (durch Zwangstrennung oder sowas), danach müssten die Clients versuchen irgendwie die neue IP heruaszufinden. Mit DynDNS oder ähnlichen Anbietern umgehst du dieses Problem. Hier installierst du ein Programm auf deinem PC (manche router haben auch so ne Funktion eingebaut), welches denen die jeweils aktuelle IP zukommen lässt und von denen bekommst du eine Addresse wie zum Beispiel http://www.deinname.dyndns.org oder sowas. Diese Addresse wird auf deine IP "umgeleitet". Somit musst du deinen Clients eigentlich nur noch diese Adresse einbleuen, die du von DynDNS bekommst, und solange dein Server online ist, können sie immer drauf connecten.

Was die Sache mit den Ports angeht:
Klar musste den freigeben (wenn du wirklich nur diesen verwenden willst), weil sonst sämtliche zugriffe darauf von der firewall geblockt werden - was ja nicht in deinem sinne sein dürfte ;)

>und wie ist es bei den anderen die mein programm nutzen wollen also z.b. einen chat!
Was willst du damit sagen? Verstehe die Frage ned ganz (wenns denn eine sein soll)

Btw.:
Ein Server Client MIX ist das imho nicht wirklich. Ein mix wäre es bestenfalls dann, wenn du EIN Programm hättest welches sowohl als Server als auch als Client fungiert, sprich ein Programm welches deine beiden Code Schnipsel vereint. So haste ne stink normale Client-Server Anwendung. Fand des Topic halt ein wenig irreführend ;)



Hoffe dir geholfen zu haben :)


Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Antworten