Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
[Minimal Off-Topic] Zugriff auf verfügbare Bytes an einem Socket

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 21. Feb 2002 9:07   Titel: [Minimal Off-Topic] Zugriff auf verfügbare Bytes an einem Socket

Hi!

Wir machen hier in der Schule gerade ein Projekt und da gibt es ein kleines Netzwerk-Programmierproblem. Ich habe dieses Posting als "Minimal Off-Topic" gekennzeichnet weil es eigentlich um Sockets unter MS-Windows geht, aber das ist ja weitgehend identisch zu den Unix-Sockets.

Wir senden von einem GNU/Linux-Rechner Daten über die Drehposition eines Würfels per TCP an einen Windows-Rechner, der ein passendes Bild via OpenGL darstellt. Da der Rechner bei einer schnellen Bewegung des Würfels nicht hinterherkommt, haben wir uns überlegt, dass er jeweils nur die aktuellste Drehposition verarbeitet. Also haben wir ein großes Array verwendet und der Funktion recv() gesagt, dass sie eine entsprechend große Zahl an Bytes maximal lesen soll und wir verwenden nur die neuesten Daten. Wir haben nun beobachtet, dass - auch wenn nur ein paar Byte angekommen sind - die große Zahl der maximal zu lesenden Bytes die Funktion recv() extrem langsam macht und die Ausgabe ruckelt ohne Ende. Wir haben nun also einen Wert gesucht, der "optimal" ist im Bezug darauf, dass es nicht ruckelt, der Rechner aber auch hinterherkommt. Naja, das klappt jetzt in der Testumgebung so einigermaßen, aber da der GNU/Linux-Rechner die Daten an zwei Windows-Rechner sendet, müsste man das nochmals anpassen. Und für den produktiven Einsatz jeweils nochmal, sofern es dort überhaupt einen sinnvollen Wert gibt, was fraglich ist, weil dort dann ein realer Würfel gedreht werden wird, dessen Bewegung ja nicht gleichmäßig ist. D.h. wir müssten herausfinden, wie viele Daten am Socket lesbar sind. Frage also: Wie geht das? :)

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 25. Feb 2002 11:53   Titel: Re: [Minimal Off-Topic] Zugriff auf verfügbare Bytes an einem Socket

Hi,

tja, TCP ist halt kein Echtzeit-Protokoll...

Es gibt da z.B. den Nagle-Algorithmus, der das Senden von Daten verzögert, wenn noch kein volles Paket vorhanden ist. Den kann man per setsockopt abschalten.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

taurus
Gast





BeitragVerfasst am: 26. Feb 2002 15:14   Titel: Re: [Minimal Off-Topic] Zugriff auf verfügbare Bytes an einem Socket

Hi !

zu meinen könntest vieleicht einen raw - socket aufmachen... damit kannst dann auch auf die ip - header zugreifen. dort ist ein vermerk über die größe des gesamten packets...
obs so sinvoll ist weis ich nicht...
oda ihr macht hald keinen recv sondern ein read ... das solle eigentlich auch funktionieren denn der sockethandle ist ja nix anderes als ein besonderes dateihandle ... dann hängst an den anfang 2 byte wo die puffergröße drinsteht. du read'est nur 2 byte und bekommst dadurch raus wieviel byte noch drinsind im stream und in der größe machst dir dann hald nen puffer...

vieleicht ist das ja ne anregung.

mfg,
taurus
 

fiesh
Gast





BeitragVerfasst am: 03. März 2002 14:42   Titel: Re: [Minimal Off-Topic] Zugriff auf verfügbare Bytes an einem Socket

oh man, man sollte halt kein TCP verwenden, wenn UDP angebracht waere.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy