Netzwerk Problem oder Bug {Große Daten Versenden}

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Was werden denn hier für seltsahme bemerungen über mich losgelassen????

:lol:
?ZUVIELEFINGERAUFDENTASTEN ERROR
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Kaeru Gaman hat geschrieben:> Was werden denn hier für seltsahme bemerungen über mich losgelassen????

:lol:
?ZUVIELEFINGERAUFDENTASTEN ERROR
:lol:
ZUVIELEFINGERAUFDENTASTEN ERROR
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Joel hat geschrieben:
Kaeru Gaman hat geschrieben:> Was werden denn hier für seltsahme bemerungen über mich losgelassen????

:lol:
?ZUVIELEFINGERAUFDENTASTEN ERROR
:lol:
ZUVIELEFINGERAUFDENTASTEN ERROR
UNCALLED RECURSION

MATRIX BROKEN

REALITY WILL RESET IN 5

4

3

2

1
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Kaeru Gaman hat geschrieben:
Joel hat geschrieben:
Kaeru Gaman hat geschrieben:> Was werden denn hier für seltsahme bemerungen über mich losgelassen????

:lol:
?ZUVIELEFINGERAUFDENTASTEN ERROR
:lol:
ZUVIELEFINGERAUFDENTASTEN ERROR
UNCALLED RECURSION

MATRIX BROKEN

REALITY WILL RESET IN 5

4

3

2

1

:lol: Du musst den Prozess beenden!!!!! *Schnell*
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
kiki
Beiträge: 155
Registriert: 06.05.2006 17:54

Beitrag von kiki »

Wenn ich generell, große .Pak Dateien die größer als 500 KB sind versende wird die Datei nicht richtig empfangen.

Hier der Code, daran liegts wahrscheinlich nicht aber ich Poste in trotzdem mal.

Server:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Network (Server) example file
;
;    (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;

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

Port = 6832
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 3
          MessageRequester("Hinweis", "Case 3", 0)
        Repeat
          m = ReceiveNetworkFile(ClientID, "D:\Speicher.pak")
         Debug m
         Until m <> 0
          MessageRequester("Hinweis", "Versend Fertig", 0)
  
        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   

Client:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Network (Client) example file
;
;    (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;


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

Port = 6832

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID
  Delay(1000)
  Repeat
  s = SendNetworkFile(ConnectionID, "D:\test.pak")
  Until s <> 0
  
  

  Delay(7000)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End   
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Vielleicht ist das ja ein BUG, es kann ja sein dass PB keine größeren .Pack Dateien Versenden kann. Oder es kann auch sein dass es nie große Daten egalin welchem Format versendet. Ob das auch mit dem Arbeitsspeicher zusammenhängt weiß ich nicht.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ich habe den Fehler entdeckt.

Ganz einfach, Der ReceiveNetworkFile() Befehl wartet bis die Datei gesendet wird. Aber bei SendNetworkFile() ist das anders, da wird so eine Art Verknüpfung aufgebaut und der Code wird ausgeführt. Wenn dannach dann ein "End" steht ist das Programm zu Ende und der Versand ist unterbrochen.

Also dannach ein Delay(70000) machen oder ähnliches und schon ist alles ok.

Ich frage mich nur warum SendNetworkFile() Nicht auch Wartet wie ReceiveNetworkFile() .
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@kiki
sieht schon besser aus :wink:
einfach machen kannste es Dir hiermit: http://www.purebasic.fr/german/viewtopi ... r&start=10
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
kiki
Beiträge: 155
Registriert: 06.05.2006 17:54

Beitrag von kiki »

Vielen Dank, jetzt klapts.

Aber ein Problem ist nochnicht gelöst, warum werden große Dateien nicht besendet bzw. 0 Zurückgegeben?

Ich meine Dateien die 400 MB oder größer sind.
Benutzeravatar
cyan
Beiträge: 24
Registriert: 22.09.2006 16:43
Kontaktdaten:

Beitrag von cyan »

Joel hat geschrieben: Also dannach ein Delay(70000) machen oder ähnliches und schon ist alles ok.
ehm, dass glaub ich nicht, da delay() das ganze programm stoppt, und dann gar nichts mehr passiert (oder irre ich mich in dem fall?)... und wenn überhaupt müsste man ja dauernd delay() parameter berechnen oO

achja, kommt mir das nur vor uns sind kiki und joel die selben personen? zumindest schaut das in den 2 links von kiffi fast danach aus (joel: "ich hab ein problem mit ner bestimmten API" - kiffi, nachdem länger keiner geantwortet hat "ja, ein schweres problem... würd mich auch interessieren")
naja, mir soll's egal sein... selten soviel spaß um die uhrzeit gehabt =)
-PureBasic 4.0-
-StudienZwang: JAVA-
Antworten