Serverproblem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Serverproblem

Beitrag 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?
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag 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...
Bild
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag 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
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
manunidi
Beiträge: 109
Registriert: 12.04.2006 22:44

Beitrag 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?
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag 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
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag 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.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

Wieso einfach wenn es komplenziert geht xD
Bild
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag 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.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag 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
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag 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
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Antworten