1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
my $ioserver = IO::Socket::UNIX->new(Local => $sock,
Type => SOCK_DGRAM,
Listen => 15 )
or croak $EVAL_ERROR;
sub read_sock {
my $sockinput;
$ioserver->recv($sockinput,2048);
return ($sockinput);
}
while (1) {
my $test = \read_sock ;
if ( $test ) { print "$test\n"; };
print "rest der welt\n";
sleep 5;
}
2012-04-12T14:30:33 LinuxerWelche Magie soll mit Zeile 14 my $test = \read_sock ; bewirkt werden?
Was willst Du mit "Backslash" "Funktionsname" bewirken?
Diese Syntax ist mir nicht geläufig.
$ioserver->autoflush(1);
2012-04-12T14:36:39 GwenDragonEinzu Anfang wäre auch sehr empfehlenswert, um Verzögerungen druch Puffern abzustellen.Code: (dl )$ioserver->autoflush(1);
QuoteAs of VERSION 1.18 all IO::Socket objects have autoflush turned on by default. This was not the case with earlier releases.
2012-04-12T14:27:12 mark05[...]
Code (perl): (dl )1 2 3 4my $ioserver = IO::Socket::UNIX->new(Local => $sock, Type => SOCK_DGRAM, Listen => 15 ) or croak $EVAL_ERROR;
[...]
von daher wuerde ich gerne abfragen ob
a: daten am socket anliegen
oder
b: ein client verbunden ist.
[...]
2012-04-12T15:16:04 murphyDas weiß er doch schon längst, was UDP bedeutet.(b) ist unmöglich, da es sich um einen Datagramsocket handelt, der das Konzept einer Verbindung gar nicht kennt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# Create Socket my $socket = IO::Socket:UNIX->new([...]); [...] # Prepare bitvector of filedescriptors to poll my $readable = ''; vec($readable, $socket->fileno, 1) = 1; # Wait up to one second for incoming data given (select($readable, undef, undef, 1.0)) { when (1) { # There is incoming data, so read it $socket->recv([...]); } when (0) { # The call timed out [...] } when (-1) { # There was an error warn "Error waiting for incoming packets: $!"; } }
2012-04-12T15:34:51 GwenDragon2012-04-12T15:16:04 murphyDas weiß er doch schon längst, was UDP bedeutet.(b) ist unmöglich, da es sich um einen Datagramsocket handelt, der das Konzept einer Verbindung gar nicht kennt.