server braucht client ip?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

server braucht client ip?

Beitrag von sen-me »

braucht der server eigentlich die ip vom client?
weil bei mir gehts nicht...
(ip ist mittlerweile wieder anders ^^)
Client:

Code: Alles auswählen

InitNetwork()
Global erg.w
Global id.w
id=OpenNetworkConnection("84.180.53.114",6832)
If id
   SendNetworkString(id,"String vom Client empfangen!")
   MessageRequester("Mitteilung","Ein String wurde zum Server gesendet!",#PB_MessageRequester_Ok)
   MessageRequester("Ende","OK drücken um die Verbindung zu trennen!",#PB_MessageRequester_Ok)
   CloseNetworkConnection(id)
Else
 MessageRequester("Error","Konnte keine Verbindung mit Server aufbauen! (Ist er gestartet?)",#PB_MessageRequester_Ok)
EndIf
server:

Code: Alles auswählen

InitNetwork()
Global buf.w
Global sev.l
Global id.w
Global quit.w
*buf=AllocateMemory(1000)
If CreateNetworkServer(6832)
   Repeat
    sev=NetworkServerEvent()
    If sev
     id=NetworkClientID()
     Select sev
      Case 1
       MessageRequester("Mitteilung","Eingehende Verbindung!",#PB_MessageRequester_Ok)
      Case 2
       MessageRequester("Mitteilung","Client "+Str(id)+" hat Daten gesendet!",#PB_MessageRequester_Ok)
       ReceiveNetworkData(id,*buf,1000)
       MessageRequester("Mitteilung","Inhalt: "+PeekS(*buf),#PB_MessageRequester_Ok)
      Case 3
       MessageRequester("Mitteilung","Client "+Str(id)+" hat eine Datei gesendet!",#PB_MessageRequester_Ok)
       ReceiveNetworkFile(id,"C:\")
      Case 4
       MessageRequester("Mitteilung","Client "+Str(id)+" hat die Verbindung getrennt!",#PB_MessageRequester_Ok)
       quit=1
     EndSelect
    EndIf
   Until quit=1
   MessageRequester("Mitteilung","Server schließt sich nach 'OK'!",#PB_MessageRequester_Ok)
   CloseNetworkServer()
Else
 MessageRequester("Error","Konnte keinen Server starten! (Port(6832) besetzt?)",#PB_MessageRequester_Ok)
EndIf
der client kann nicht mit dem server verbinden
(port aba frei)
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

der client muss ja auf den server connecten d.h. wenn jemand die IP braucht dann der Client
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
HeX0R
Beiträge: 3056
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 »

Laufen die beide auf der selben Kiste ?
Wenn ja, solltest du nicht die externe IP benutzen (wie du es scheinbar getan hast), sondern 127.0.0.1
Laufen sie auf verschiedenen Rechnern in deinem privaten Netzwerk ?
Dann solltest du die interne IP des Server-Rechners benutzen.
Falls dein Serverprogramm tatsächlich auf einem externen Rechner rennt, und der Port dort durchkommt, würde es auch funktionieren.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

ich habs mitn freund getestet, aba ich konnte nicht connecten

muss mein port auch frei sein? (client)
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Yo klar...
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

ja und wie machen all die andren multiplayer spiele das wie z.b. rainbow
da brauch ich zum mitspielen auch keine freien ports

oder die siedler 3

muss doch nur der host->server frei port haben?
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Die haben einen Firewall Support ;-)
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

das heist?
Mathias-Kwiatkowski
Beiträge: 118
Registriert: 26.06.2005 23:06
Wohnort: Dinslaken

Beitrag von Mathias-Kwiatkowski »

falls du einen router benutzt solltest du einen port freigeben und dich bei www.dyndns.org einen namen holen und deine ip immer nach einem neuen connect vom router modifizieren!

so mach ich es auch

der befehl damit der client dann auf mein server zugreiffen kann lautet dann:
mein port wollte ich nu nicht gerade freigeben aber nimm z.b
5505
oder so


ConnectionID =OpenNetworkConnection("pureos.ath.cx", Port)
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

kapier ich nicht? ich hab die doch aus der hilfe mal probiert (die ip 127.0.0.1 natürlich auf freund ip geändert)
und ging nicht
also müssen beide seiten port 6832 frei haben oda?
Antworten