Server und Client - Welche IP-Adresse

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Server und Client - Welche IP-Adresse

Beitrag 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???
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag 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.
PureBasic 4.30 (x86)
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Beitrag 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

???
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag 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
PureBasic 4.30 (x86)
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Beitrag von Sunny »

Dann muss ich jetzt also auch noch manuell am Router rumfummeln.
(bzw. an den Einstellungen vom Router)
Oder wie???
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Nein es gibt auch irgendwie nen anderen Weg! Lieder fällt der mir gerade ned ein :D
PureBasic 4.30 (x86)
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Beitrag 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???
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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.....
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Beitrag von Sunny »

Aktiviere einfach PortForwarding auf TCP Port 6832 in deinem Router
OK, mach ich...
Ähm...
und wie???
Antworten