Seite 1 von 4

Serverproblem

Verfasst: 30.12.2006 14:52
von unix
hab nun ein kleinen Connection problem

Also ich will ne Verbindung über Internet aufbauen also Port 80

Client meldet alles Rodger verbindung hergestellt
Server schläft vor sich hin und merkt nichts was ist das

beides leif auf gleichen PC

Code Server:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 80
Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          MessageRequester("PureBasic - Server", "A new client has connected !", 0)
  
        Case 2
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          ReceiveNetworkData(ClientID, Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(Buffer), 0)
  
        Case 3
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
          ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
  
        Case 4
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End
Code Client:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 80

ConnectionID = OpenNetworkConnection("Global IP des Servers (geheim)^^", Port)
If ConnectionID
  MessageRequester("PureBasic - Client", "Client connected to server...", 0)
  
  SendNetworkString(ConnectionID, "An hello from a client !!! :-)")
    
  MessageRequester("PureBasic - Client", "A string has been sent to the server, please check it before quit...", 0)
  
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End
kann mir jemand helfen?

Verfasst: 30.12.2006 16:31
von sen-me
Wenn beides auf 1 Rechner läuft, benutzt du die IP 127.0.0.1? Weil anders geht es glaube ich nicht (außer vllt noch der Gateway IP also z.B. 192.168.178.20)

Oder Port 80 ist schon benutzt...

Verfasst: 30.12.2006 16:44
von unix
ich wollte ja ausprobieren obe s geht hmm muss ich halt den Client meinen Kumpel geben

[EDIT]

ok hab es ausprobiert mit Port 8080 ausprobiert kein connect

Verfasst: 30.12.2006 18:51
von manunidi
Du musst wenn du zu dir am aktuellen rechner connectest die 127.0.0.1 verwenden (=localhost)! Das mit dem Port 80 das der schon in verwendung ist müsste aber durch das if createnetworkserver abgeprüft werden, oder irre ich mich da?

Verfasst: 30.12.2006 19:10
von Scarabol
@manunidi
Nein du irrst dich nicht. (Siehe Hilfe)

@unix
Hast du die 127.0.0.1 als IP benutzt?
Bei mir funktioniert es, wenn ich den Port auf 8080 ändere (da 80 wie es scheint in Benutzung ist) und 127.0.0.1 als IP (lokale interne IP eben) verwende.

Wenn du das mit deinem Kumpel über Internet probierst musste, wenn du nen Router hast den Port freigeben.

Gruß
Scarabol

Verfasst: 30.12.2006 20:15
von THEEX
Die Port-Werte reichen von 6000 bis 7000 (dies ist der empfohlene Bereich, in Wirklichkeit können die Werte im Bereich von 0 bis 65000 liegen)
Allerdings sollte der Server, gar nicht erst erstellt werden können, wenn der Port schon benutzt ist. Ich glaube zumindest war das auch früher so.

Im Übrigen kann man die IP seiner Netzwerkkarte angeben, denn das ist die Lokale IP (wenn Server und Client auf dem gleichen Rechenr laufen), 127.0.0.1 muß nicht verwendet werden, aber vereinfacht es natürlich.

Verfasst: 30.12.2006 20:56
von sen-me
Wieso einfach wenn es komplenziert geht xD

Verfasst: 30.12.2006 22:41
von THEEX
@sen-me
Es geht nicht darum, was einfach ist oder nicht, sondern das behauptet wurde, man müsse 127.0.0.1 verwenden und das ist einfach falsch.

Verfasst: 31.12.2006 11:03
von Scarabol
Ist doch egal ob es falsch war, aber es geht doch erstmal nur darum das die einfachen Dinge funktionieren, dann kann man mit komplizierteren Sachen anfangen, das hilft ja wohl mehr weiter als irgendwelche Erklärungen die sowieso keiner im ANFÄNGER Forum versteht.

Gruß
Scarabol

Verfasst: 31.12.2006 15:05
von unix
über lokal mit dem Loopbackadapter (127.0.0.1) kein Problem aber wenn ich den Client meinen Kumpel gebe also 2 unterschiedliche PC´s ist nichts der Port ist normalerweise offen

Triggeret Port: 8080
Open Port: 8080

am Router

Firewall war auch aus