Thread [IO::Socket] Größe einer Nachricht (13 answers)
Opened by pktm at 2011-05-09 16:11

rosti
 2011-05-10 19:33
#148430 #148430
User since
2011-03-19
3199 Artikel
BenutzerIn
[Homepage]
user image
Hi,
stat liefert "was" und danach kann das Handle gelesen werden, Beispiel:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use strict;
use IO::Socket;


my $socket = new IO::Socket::INET (
        PeerAddr => 'ptbtime1.ptb.de',
        PeerPort => 37,
        Proto    => 'tcp'
) or die "Kein Socket bekommen!";

my @stat = stat($socket);
print join "\n", @stat;

read ($socket, my $buffer, 4);
print unpack "N", $buffer; # seconds since 1.1.1900


Allerdings ist [7] auf 0. Guck Du mal bitte, ob [7] in Deinem Fall was liefert.

Was Du auf den "Server" machen könntest (falls möglich): Einen "Header" senden, z.B. 4 Byte mit der Längenangabe. Das läuft dann so ab: 4 Byte lesen zum Ermitteln der Länge. Danach kann mit read() das komplette Socket gelesen werden, oder es wird halt gepuffert.

--Rosti

View full thread [IO::Socket] Größe einer Nachricht