Network Connection?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Abraham0607
Beiträge: 32
Registriert: 16.01.2012 16:38
Kontaktdaten:

Network Connection?

Beitrag von Abraham0607 »

Hi,

ich probiere testhalber einen kleinen Chat zu programmieren, doch schon beim herstellen der Verbindung scheitert mein Programm :(

Wenn ich im gleichen WLAN-Netzwerk auf den Server connecte, funktioniert alles. Sobald der Client aber aus einem Netzwerk gestartet wird, kann er nciht mehr verbinden.
Ich habe schon den Port am Router geöffnet und in meiner Firewall an diesem Port eine eingehende und ausgehende Regel erstellt.

Code:
Cient:

Code: Alles auswählen

InitNetwork()
OpenConsole()
ConsoleTitle("Empire Chat Client")

*ReceiveBuffer=AllocateMemory(1000)

PrintN("Please enter the IP of the server.")
Print("IP: ")
IP$=Input()
Connection = OpenNetworkConnection(IP$,6666)
If Connection
  PrintN("Connected to server.")
Else
  PrintN("Couldn't connect to the server. Press Enter to stop the program.")
  Input()
  End
EndIf

Repeat
  NetworkEvent=NetworkClientEvent(Connection)
  Select NetworkEvent
    Case #PB_NetworkEvent_Data
      ReceiveNetworkData(Connection,*ReceiveBuffer,1000)
      PrintN("Server: "+PeekS(*ReceiveBuffer))
  EndSelect
Until Quit = 1
End
Server:

Code: Alles auswählen

InitNetwork()
OpenConsole()
ConsoleTitle("Empire Chat Server")
If CreateNetworkServer(1,6666)
  PrintN("Server created.")
Else
  PrintN("Couldn't create the server! Press Enter to close the program")
  Input()
  End
EndIf

*ReceiveBuffer=AllocateMemory(1000)
NewList Clients.s()

Repeat
  NetworkEvent=NetworkServerEvent()
  Select NetworkEvent
    Case #PB_NetworkEvent_Connect
      PrintN("Client connected. (Client ID: "+Str(EventClient())+")")
      AddElement(Clients())
      Clients()=Str(EventClient())
    Case #PB_NetworkEvent_Disconnect
      PrintN("Client disconnected. (Client ID: "+Str(EventClient())+")")
      FirstElement(Clients())
      For i=0 To ListSize(Clients())-1
        If EventClient() = Val(Clients())
          DeleteElement(Clients())
        EndIf
        NextElement(Clients())
      Next i
    Case #PB_NetworkEvent_Data
      ReceiveNetworkData(EventClient(),*ReceiveBuffer,1000)
      PrintN("Client "+Str(EventClient())+": "+PeekS(*ReceiveBuffer))
      
  EndSelect
Until Quit = 1
End
(Ich weiß, dass ich nicht optimal programmiere aber darum gehts hier ja nicht ;) )
MfG Abraham

====================
Virtual Cookbook
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Network Connection?

Beitrag von KeyKon »

Hast du den Port auch auf die korrekte IP geschalten?
Du musst dem Router sozusagen sagen an welche Interne-IP er eingehende Verbindugen mit diesem Port weiterleiten soll (Es muss die IP des PCs sein, auf dem der Server läuft)
(\/) (°,,,°) (\/)
Benutzeravatar
Abraham0607
Beiträge: 32
Registriert: 16.01.2012 16:38
Kontaktdaten:

Re: Network Connection?

Beitrag von Abraham0607 »

Ja hab ich
MfG Abraham

====================
Virtual Cookbook
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Network Connection?

Beitrag von KeyKon »

Mh, dann erklär nochmal genau wann es funktioniert und wann nicht, denn der Code funktioniert einwandfrei.
Der Fehler muss also in der Verwendung liegen, also falsche IP, oder irgendwas was die Verbindung blockiert...

LG KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
Abraham0607
Beiträge: 32
Registriert: 16.01.2012 16:38
Kontaktdaten:

Re: Network Connection?

Beitrag von Abraham0607 »

Ja, innerhalb meines Netzwerks funktioniert alles, aber sobald jemand anderes, der nicht im selben Netzwerk ist, es probiert kommt keine Verbindung zustande.
MfG Abraham

====================
Virtual Cookbook
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Network Connection?

Beitrag von KeyKon »

Gut ich nehme dann einfach mal an, dass derjenige über das Internet verbindet, hast du ihm denn die richtige IP gegeben (http://www.wieistmeineip.de/), und ist bei ihm auch die Firewall richtig konfiguriert?
(\/) (°,,,°) (\/)
Benutzeravatar
Abraham0607
Beiträge: 32
Registriert: 16.01.2012 16:38
Kontaktdaten:

Re: Network Connection?

Beitrag von Abraham0607 »

Muss er auch den Port in der Firewall öffnen? (hier also 6666)
MfG Abraham

====================
Virtual Cookbook
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Network Connection?

Beitrag von KeyKon »

Nein, ausgehende Verbindungen werden im Router normalerweise nicht blockiert (außer natürlich er hat das so eingestellt, das wär natürlich blöd^^)
Aber die Firewall auf seinem PC, kann das Programm ja durchaus blockieren.
(\/) (°,,,°) (\/)
Benutzeravatar
Abraham0607
Beiträge: 32
Registriert: 16.01.2012 16:38
Kontaktdaten:

Re: Network Connection?

Beitrag von Abraham0607 »

Okay, werd ich mal ausprobiern, wenn er wieder online ist.
Erstmal danke :)
MfG Abraham

====================
Virtual Cookbook
Antworten