Daten per netzwerk versenden ?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Helge

Betreff: Daten per netzwerk versenden ?

BeitragSa, Jun 10, 2006 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hi @ all,

Ich müste dringend wissen wie man Daten per Lan (mit blitz3d) versendet , geht das überhaubt ??

gröse so ca.2-10GB

wenn nich wie geht das denn dann ?

thx

PowerProgrammer

BeitragSa, Jun 10, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht natürlich!
-> Beginners Corner


WriteByte etc. in der OH angucken.

Edit: Aber so große Dateien dauern unheimlich lange. Wenn Übertragungsfehler egal sind, UPD nutzen, das ist schneller.
  • Zuletzt bearbeitet von PowerProgrammer am Sa, Jun 10, 2006 12:28, insgesamt einmal bearbeitet

Goodjee

BeitragSa, Jun 10, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich geht das...dazu musst einen client und einen server proggen...

server: createtcpServer oder so.. und accepttcpstream oder so...
client:opentcpstream



und dann ne datei auslessen und zeilen/byteweise versenden...und auf der andren seite wieder zusammenflicken
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Helge

BeitragSa, Jun 10, 2006 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
den server und den client hab ich schon nur wenn ich versuch was zu übertragen macht der fehler das rar archiv is dann nur noch salat

(übertragungsvehler sin tödlich bei nem rar archiv)
wie funtzt das upd
Ich brauche HiLfe (bei nem prog) oder Helfe auch gerne

PowerProgrammer

BeitragSa, Jun 10, 2006 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei TCP wird alles mehrfach gesendet, sodass allles gaaanz sicher ankommt. Dadurch ist es langsam. Bei UDP wird alles einmal gesendetz, und wenn es verloren geht, dann ist es weg und wird nicht wieder gesendet => langsamer


Zeig mal deinen bisherigen Quelltext. Ich würde das alles per Bytes machen, nicht per Lines oder so.

Goodjee

BeitragSa, Jun 10, 2006 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
und vllt alles in banks speichern was kommt...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

PowerProgrammer

BeitragSa, Jun 10, 2006 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum in Banks? Ich würds direkt in eine Datei packen...




Ist die Enddatei bei dir genauso groß, wie die Quelldatei?

Ich würde zuerst mal testen, Textdateien zu übertragen. So kannst du nämlich sehen, ob das Ergebnis einigermaßen mit der Quelldatei zusammenhängt. Wenn du nämlich ReadLine oder so nutzt, kann es sein, das die ganzen ASCII-Steuerzeichen die RAR-DAteien zerstören.

Aber trotzdem: Wir können dir nur helfen, wenn wir den Code sehen...
 

Helge

BeitragSo, Jun 11, 2006 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
server

bb code :



svrGame=CreateTCPServer(8080)

If svrGame<>0 Then
Print "Server started successfully."
Else
Print "Server failed to start."
End
End If
datax=WriteFile ("get.rar")
While Not KeyHit(1)
strStream=AcceptTCPStream(svrGame)
If strStream Then
Print ReadByte(strStream)
get=ReadByte(strStream)
WriteByte datax,get
Delay 2000
Else
End If
Wend

End


bb code ende



client:



bb code:

svrGame=CreateTCPServer(8080)

If svrGame<>0 Then
Print "Server started successfully."
Else
Print "Server failed to start."
End
End If
datax=WriteFile ("get.rar")
While Not KeyHit(1)
strStream=AcceptTCPStream(svrGame)
If strStream Then
Print ReadByte(strStream)
get=ReadByte(strStream)
WriteByte datax,get
Delay 2000
Else
End If
Wend

End


bb code ende
Ich brauche HiLfe (bei nem prog) oder Helfe auch gerne

PowerProgrammer

BeitragSo, Jun 11, 2006 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry, das ist jetzt leider etwas Off-Topic:

Arrow Am besten, du nutzt hier im Forum Code-Tags (sonst kommen die Mods Very Happy )
Arrow Benenne deine Variablen eindeutiger, "svrGame" ist für eine Netztwerkübertragung von Dateien etwas unpassend!
Arrow Der Code ist unübersichtlich, da du keine Einrückungen nutzt.
Arrow Was soll n das:
Code:
Else
End If
???
Arrow Warum die Delays? Damit benötigt das Proggi ja ewig!

BtbN

BeitragSo, Jun 11, 2006 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Und benutz blos nicht WriteByte für so große Dateien!
Da BB bei jedem WriteByte den TCP-Overhead von 24KB mitsendet, sendest du bei 3KB in wirklichkeit 3*24=72GB.
Die einzige Möglichkeit, dies zu umgehen ist der Befehl WriteBytes und die Banks, denn dort werden so wenig Header wie möglich gesendet.

D2006

Administrator

BeitragSo, Jun 11, 2006 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
BORNtobeNAMELESS hat Folgendes geschrieben:
Da BB bei jedem WriteByte den TCP-Overhead von 24KB mitsendet, sendest du bei 3KB in wirklichkeit 3*24=72GB.


Das mag ich arg bezweifeln! Im Normalfall sollte der Nagle-Alogrithmus im Hintergrund aufgerufen werden (also nicht Aufgabe des BB-Programmierers), der genau sowas verhindert.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

MaTrixCruiser

BeitragSo, Jun 11, 2006 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Also.. das mit den Banks ist so ne sachen, die kapier ich noch nicht ganz....

Hab daher zwei fragen.
1. ist das schneller?
und 2.
Wie kann ich die datenübertragungsrate ermitteln bei writebyte?
Amd 64 3200+ (939 winchester)
nvidea 6600gt (PCI-E)
1024 ddr400
200GB HDD
S
 

Helge

BeitragSo, Jun 11, 2006 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich soll alles was ich sende in ne bank schreiben und dann senden aber wie ??

...... aähhh per tcp client ich kann so nur max 5 bytes senden danach disconnectet der client und kackt ab !!!

kann mir mal jemand n code schreiben der so ungefähr auf meinem basiert von dem ich lehrnen kann !!

wie geht das mit dem nagle algorytmus

pls pls pls pls
Ich brauche HiLfe (bei nem prog) oder Helfe auch gerne

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group