Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

078274121, info0a ip, should prodicers of software_based services be held liable or not liable for economic injuries, should producers of soft ware based services such as ATMs be held liable for economic injuries suffered when their systems fail?, nisc wwwxxx, wwwxxx0cm, should producers of software-based services, such as atms, be held liable for economic injuries suffered when their systems fail?, wwwxxx0cm, www.webdp.net, Event 9 IIS log failed to write entry

Links

XODOX
Impressum

#1: IO::Socket Unterschied zwischen recv und read

Posted on 2008-01-12 18:28:53 by Andreas Hernitscheck

Hallo Alle,

ich kapier einfach nicht was recv genau macht (im Gegensatz zu read).
Offensichtlich was anderes, da folgendes nichts tut. Habe einen Server,
der bei Verbindung einen Text sendet, hier der Client:


while ($fp->recv($bytes,1))
{
print '.'.$bytes;
}

was geht:

while ($fp->read($bytes,1))
{
print '.'.$bytes;
}


.... ich bitte Euch um Aufklärung. Thx!

Report this message

#2: Re: IO::Socket Unterschied zwischen recv und read

Posted on 2008-01-12 20:23:39 by unknown

Post removed (X-No-Archive: yes)

Report this message

#3: Re: IO::Socket Unterschied zwischen recv und read

Posted on 2008-01-13 22:38:48 by Andreas Hernitscheck

Am Sat, 12 Jan 2008 19:23:39 +0000 schrieb Ralf Döblitz:

> perldoc -f read
> perldoc -f recv
>
> Die Funktionen haben unterschiedliche Return Values.

Hmm(?) Nun ich verstehe es leider nicht. Nach dem Doc würde ich beides
als gleich verstehen. Bei der recv Variante, springt er einfach weiter,
als gäbe es nichts zum lesen.

Kann mir das Jemand in einfachen Worten Erklären? "Return Values" - mag
sein, aber ich bekomme bei recv einfach garnichts in $bytes.

Report this message

#4: Re: IO::Socket Unterschied zwischen recv und read

Posted on 2008-01-13 22:46:41 by Andreas Hernitscheck

Am Sun, 13 Jan 2008 22:38:48 +0100 schrieb Andreas Hernitscheck:

>
> Hmm(?) Nun ich verstehe es leider nicht. Nach dem Doc würde ich beides
> als gleich verstehen. Bei der recv Variante, springt er einfach weiter,
> als gäbe es nichts zum lesen.
>
> Kann mir das Jemand in einfachen Worten Erklären? "Return Values" - mag
> sein, aber ich bekomme bei recv einfach garnichts in $bytes.

Naja, so halb konnte ich es mir nun selbst beantworten: In einer while
Schleife macht er bei recv natürlich nichts, wenn es nichts zurückgibt
(was scheinbar mal sein kann). Nur Seltsam ist folgendes:

$fp->read($bytes,2);

ist macht was anderes als

$fp->recv($bytes,2);

Die Länge bei recv ist irgendwie nicht an die 2 Gebunden - er liest immer
das gleiche, auch wenn ich 2 erhöhe. Bei read liest er wirklich 2 bytes.

Report this message

#5: Re: IO::Socket Unterschied zwischen recv und read

Posted on 2008-01-18 22:19:08 by unknown

Post removed (X-No-Archive: yes)

Report this message

#6: Re: IO::Socket Unterschied zwischen recv und read

Posted on 2008-03-31 13:34:30 by Kevin Osthoff

On 2008-01-12, Andreas Hernitscheck <velo@despammed.com> wrote:
> Hallo Alle,

Hi Andreas!

> ich kapier einfach nicht was recv genau macht (im Gegensatz zu read).
> Offensichtlich was anderes, da folgendes nichts tut. Habe einen Server,
> der bei Verbindung einen Text sendet, hier der Client:

Also so wie ich das verstanden habe, ist read gebuffert während
recv ungebuffert ist. Das read in Perl ruft intern fread auf. Möchtest
du ein ungebuffertes read, musst du sysread verwenden.
Ich stell mir jetzt die Frage, wo der Unterschied zwischen recv und
sysread ist, von den Rückgabewerten jetzt mal abgesehn.
Laut Documentation implementiert recv den recvfrom call.
Sollte man also recv nur fürs udp-Protokoll verwenden oder ist das egal?

Gruß Kevin

Report this message