Seite 1 von 3

Server und Client - Welche IP-Adresse

Verfasst: 04.03.2009 21:21
von Sunny
So...
Ich hab mal wieder ein Problem... Also... Ich hab einen

Client:

Code: Alles auswählen

;__________________________________________
;
;                   Client
;
;__________________________________________
OpenFile(0,"Sendung.txt")
WriteString(0,"Alles hat großartig funktioniert!")
CloseFile(0)

If InitNetwork() = 0
  MessageRequester("Error", "Netzwerk konnt nicht initialisiert werden!", 0)
  End
EndIf

Port = 6832

versenden$ = "Sendung.txt"
If versenden$
 

ConnectionID = OpenNetworkConnection(MeineIP, Port)
If ConnectionID

 
  If SendNetworkFile(ConnectionID, versenden$)
  MessageRequester("PureBasic - Server", "Es wurde eine Datei versendet!", 0)
  DeleteFile("Sendung.txt")
  Else
  MessageRequester("PureBasic - Server", "Es wurde leider keine Datei versendet!", 0)
  DeleteFile("Sendung.txt")
  EndIf
 
 
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Server konnte nicht gefunden werden!", 0)
EndIf
EndIf
 
End 
und einen

Server:

Code: Alles auswählen

;__________________________________________
;
;                   Server
;
;__________________________________________

If InitNetwork() = 0
  MessageRequester("Error", "Netzwerk konnt nicht initialisiert werden!", 0)
  End
EndIf

Port = 6832
empfangen$ = "Sendung.txt"

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server erstellt (Port "+Str(Port)+").", 0)
 
  Repeat
     Delay(10)
    SEvent = NetworkServerEvent()
 
    If SEvent
   
      ClientID = EventClient()
       
        If ReceiveNetworkFile(ClientID, empfangen$)
        MessageRequester("PureBasic - Server", "Es wurde eine Datei empfangen!", 0)
        Else
        MessageRequester("PureBasic - Server", "Es wurde leider keine Datei empfangen!", 0)
        EndIf
        Quit = 1
       
    EndIf
   
  Until Quit = 1
 
  MessageRequester("PureBasic - Server", "Klicke auf 'OK', um die Verbindung zum Server zu beenden.", 0)
 
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Server konnte nicht erstellt werden!", 0)
EndIf

 
End
jetzt habe ich mittels php meine IP-Adresse ermittelt und die dann beim Clienten in Zeile 21 an stelle der Variable MeineIP eingefügt...

Dann habe ich erst den Server und danach den Clienten gestartet

Ergebnis: hat nich funktioniert

danach habe ich mit hilfe von PB eine verfügbare IP-Adresse ermitteln lassen

IP-Adresse ermitteln:

Code: Alles auswählen

InitNetwork()
ExamineIPAddresses()
ip=NextIPAddress()
ipstring$=IPString(ip)
Debug ipstring$
und die ausgabe anstelle der Variable MeineIP eingefügt...

Danch habe ich wieder erst den Server und dann den Clienten gestertet

Ergebniss: hat einwandfrei funktioniert

Aber als ich den Server auf meinem Rechner gestartet hab und ein bekannter den Clienten auf seinem Rechner, hat der Client den Server nicht gefunden (ich habs mit beiden IP-Adressen ausprobiert, sowohl die mit PHP als auch die mit PB ermittelte)

Jetzt kommt endlich meine eigentliche Frage:

Woran liegt es das der Client von einem anderen Rechner aus den Server auf meinem Rechner nicht findet???

Liegt das an der angegebenen IP-Adresse oder hat das einen anderen Grund???

Verfasst: 04.03.2009 21:27
von php-freak
Ich schätz mal das Problem liegt im Router oder in der Firewall!

Im Roter den Port freischalten und in der Firewall auch beziehungsweise das Programm erlauben.

Verfasst: 04.03.2009 21:27
von HeX0R
Du musst auf der Serverseite dafür Sorgen, dass der Port 6832, wenn er auf deinen Internetrouter trifft, auch deinen Rechner erreicht.
In der Regel musst du dafür ein sog. Port Forwarding in deinem Router einrichten.

Als IP musst du deine öffentliche IP benutzen, also eher die, die dein php-script rausgewürfelt hat.

Verfasst: 04.03.2009 21:43
von Sunny
Ich danke erstmal für eure Antworten...

Naja, mit meinem Bekannten kann ich erst morgen wieder rumprobieren, daher frage ich jetzt einfach nochmal hier im Forum...

Ist es nicht möglich das ganze Port Forwarding - Zeugs zu umgehen in dem ich nen anderen Port benutze???

z.B.
Port 21 für FTP
oder
Port 80 für http

???

Verfasst: 04.03.2009 21:53
von php-freak
Das wäre ja noch schöner!

Das ein Port offen wäre!

Ne ne wenn das so wäre hättest du nen haufen Viren, Trojaner, Malware etc. bei dir aufm Computer

Verfasst: 04.03.2009 22:23
von Sunny
Dann muss ich jetzt also auch noch manuell am Router rumfummeln.
(bzw. an den Einstellungen vom Router)
Oder wie???

Verfasst: 04.03.2009 22:24
von php-freak
Nein es gibt auch irgendwie nen anderen Weg! Lieder fällt der mir gerade ned ein :D

Verfasst: 04.03.2009 22:28
von Sunny
hmm... Das Programm BitTorrent nutzt doch auch nen Port für das Empfangen von Daten, kann mein Server nicht einfach auch diesen Port nutzen???

Verfasst: 04.03.2009 22:33
von cxAlex
Aktiviere einfach PortForwarding auf TCP Port 6832 in deinem Router. Viren und Trojaner kommen da keine rein außer irgent ein Hacker nimmt sich die Zeit und findet herraus wie er über eine Sicherheitslücke in deinem Code auf deinen PC zugreifen kann. Also echt jetzt.....

Verfasst: 05.03.2009 19:10
von Sunny
Aktiviere einfach PortForwarding auf TCP Port 6832 in deinem Router
OK, mach ich...
Ähm...
und wie???