Seite 1 von 2

Client/Server (?)

Verfasst: 29.07.2008 17:19
von DrNo
Hallo,
Eine scheinbar einfache Frage.
Ich wollte neulich mein Programm mit einer Update-Funktion zum test ausstatten. Das hat aber nicht geklappt.

Dann hab ich einfach mal das Server und das Client example genommen und die localhost-adresse (127.0.0.1) in dem Clientbeispiel durch meine IP Adresse ersetzt. Dann hab ich den Server gestartet und den Client einem Freund geschickt. Aber wenn er ihn ausführt sagt im das prog es hätte keine server gefunden und bei mir passiert garnix...Obwohl alles klappen müsste und das Programm vollen zugriff auf das Internet hat.

Warum geht das nicht?

Wenn ich das ganze am eigenen PC ausprobier - also localhost 127.0.0.1, dann klappts.

grüße
DrNo

Verfasst: 29.07.2008 17:23
von STARGÅTE
du wirst nicht deine "echte" Internet-IP benutzt haben, oder eines deiner Überwachungsprogramme (FW,..) hat den Client geblockt

für weitere Infos wäre dein (Teil-)Code hilfreich

Verfasst: 29.07.2008 17:31
von DrNo
Danke für dei schnelle Antwort,
Stargäte hat geschrieben:du wirst nicht deine "echte" Internet-IP benutzt haben, ...
Du hast warscheinlich Recht, es gibt ja verschiedene IPs.
Ich habe die IP Adresse über JavaScript auf www.wieistmeineip.de oder auf meiner Homepage unten www.cedrics-home.de.tl ermittelt und dann im Client bei "hier" eingetragen:

Client:

Code: Alles auswählen

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

Port = 6832

ConnectionID = OpenNetworkConnection("hier", 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   
Server:

Code: Alles auswählen

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

Port = 6832
*Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          MessageRequester("PureBasic - Server", "A new client has connected !", 0)
  
        Case 2
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          ReceiveNetworkData(ClientID, *Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(*Buffer), 0)
  
        Case 3
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
          ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
  
        Case 4
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   

//EDIT

Und was für eine IP Adresse muss ich jetzt verwenden bzw. wo find ich die?

Verfasst: 30.07.2008 12:50
von Brügge
hi DrNo!

hast du den Port freigeschaltet?
benutze am besten einen port mit einer sehr hohen zahl...

wenn du mit der IP 192.168.1.1 oder 192.168.2.1 im inetbrowser eingibst, kommste auf deinen router...

dort kann man unter NAT einen Port für einen virtuellen server einstellen.

dort einfach deinen port und warscheinlich TCP eingeben

MFG Brügge

Verfasst: 30.07.2008 13:03
von DrNo
Hallo,
Auf die Idee bin ich neulich auch schon gekommen, allerdings hat es danach auch nicht geklappt.

Ich hab in meinem Router (Fritz!Box) den TCP Port 6832, 6832-6832 freigegeben.
Die IP Adresse hab ich ebenfalls aus meinem Router entnommen. Die ist offensichtlich eine andere wie die die bei www.wieistmeineip.de angezeigt wird.

Verfasst: 30.07.2008 13:06
von Joel
Zusätzlich kann du auch noch unter www.dyndns.org eine eigene DNS erstellen. Das ist seine Dynamische Ip Adresse bzw. ein Adresse, die immer auf deine Aktuelle Ip Adresse zurückführt. Du gibt einfach deine DNS ein und der Client verbindet sich immer mit deinem Router...egal welche IP-Adresse du hast. Du musst dem Router das nur vorher sagen. Der Menüpunkt heißt öfters Dynamische DNS. Und dich natürlich für eine DNS Anmelden.

Verfasst: 30.07.2008 15:36
von DrNo
Ok danke...ist der Dienst kostenlos?

Wenn aj werd ich mir eine einrichten.

Wird dass dann auch klappen, also wenn ich die Adresse durch eine DNS ersetze, dass das example dann klappt.

Verfasst: 30.07.2008 16:57
von Joel
Wenn du alles Richtig auf der seite eingibst, und den Freien Port verwendest, dann klappts.

Verfasst: 30.07.2008 21:04
von DrNo
Ok danke ich werds testen

Verfasst: 08.09.2008 18:17
von DrNo
Hallo wieder,
Auf die empfehlung von Joel hab ich mir ja mal die www.dyndns.com seite angeschaut.
Ich hab mich (erst) heute mal da angemeldet (DynDNS)...Habs mir auch schon ein bisschen durchgelesen, aber ich versteh nicht ganz wie ich das jetzt verwenden muss :?

Muss ich mir so nen DNS SErver erstellen (z.B. myhost.dyndns.org) und dann halt den update client installieren damit das aktuell bleibt und dann die dynDNS andresse einfach dann bei openconnection eintragen und dann klappt des client/server (nur ich halt als dynDNS server) beispiel?
Oder muss ich dnan immernochwas in meinem router umstellen?

grüße DrNo