Seite 1 von 1

Network Connection?

Verfasst: 15.07.2013 11:58
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 ;) )

Re: Network Connection?

Verfasst: 15.07.2013 12:37
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)

Re: Network Connection?

Verfasst: 15.07.2013 14:59
von Abraham0607
Ja hab ich

Re: Network Connection?

Verfasst: 15.07.2013 15:04
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

Re: Network Connection?

Verfasst: 15.07.2013 15:08
von Abraham0607
Ja, innerhalb meines Netzwerks funktioniert alles, aber sobald jemand anderes, der nicht im selben Netzwerk ist, es probiert kommt keine Verbindung zustande.

Re: Network Connection?

Verfasst: 15.07.2013 15:15
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?

Re: Network Connection?

Verfasst: 15.07.2013 15:16
von Abraham0607
Muss er auch den Port in der Firewall öffnen? (hier also 6666)

Re: Network Connection?

Verfasst: 15.07.2013 15:20
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.

Re: Network Connection?

Verfasst: 15.07.2013 15:24
von Abraham0607
Okay, werd ich mal ausprobiern, wenn er wieder online ist.
Erstmal danke :)