Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Socket-programmierung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.05.2003, 11:22 Uhr
~arkantos
Gast


Weiß jemand, wie viel Bytes man bei den Anweisungen "read() und "write()" maximal übertragen kann, und wie die dann im Hintergrund übertragen werden, per IP?

Grüße, arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.05.2003, 11:34 Uhr
virtual
Sexiest Bit alive
(Operator)


Welches Betriebssystem?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.05.2003, 11:38 Uhr
~arkantos
Gast


Linux
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.05.2003, 11:55 Uhr
virtual
Sexiest Bit alive
(Operator)


In der Regel muß man unterscheiden zwischen Blocking und Non-Blocking IO.
Wenn Du mit einem blocking Socket arbeitest (solange du nicht explizit was machst, ist es blocking), dann blockt das read/write solange, bis du die gewünschten bytes hast oder eines der an der Übetragung beteiligten Sockets sein Dasein beendet.

Bei non-blöocking kann es vorkommen, daß du bei großen Datenmengen eine Bufferoverflow bekommst (errno wird dann EAGAIN). Da empfehlen sich also kleinere Portionen und ggf. ein select(2), um rauszubekommen, ob man denn mit dem Socket grade was anfangen kann.

Letztlich aber werden die Daten, die du verschickst, von darunterliegenden Layern gesplittet. Du bekommst die max Paketgröße raus, indem du mal ein ifconfig auf den Netzwerkadaptor machst, über den du sendest. Die MTU/MRU ist da in der regel 1500, wobei du für IP und TCP header noch mal 44 Bytes (glaube ich) abziehen kannst.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.05.2003, 13:24 Uhr
~arkantos
Gast


gibts da net einfach eine maximale Byteanzahl, die ich per write() über einen Socket jagen kann?

Grüße arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.05.2003, 19:25 Uhr
virtual
Sexiest Bit alive
(Operator)


IMHO nein. Es gelten halt die og Bedingungen
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.05.2003, 08:22 Uhr
~arkantos
Gast


ok. ich probiers.

dankeschön

grüße arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: