Browse Source

udp can be unreliable even over localhost

git.mgm/mediaproxy-ng/2.1
Richard Fuchs 14 years ago
parent
commit
63b034e623
1 changed files with 13 additions and 3 deletions
  1. +13
    -3
      tests/simulator-udp.pl

+ 13
- 3
tests/simulator-udp.pl View File

@ -19,9 +19,17 @@ my $fd;
sub msg {
my ($l) = @_;
my $cookie = $$ . '_' . rand_str(10);
send($fd, "$cookie $l", 0) or die $!;
my $r;
recv($fd, $r, 0xffff, 0) or die $!;
while (1) {
send($fd, "$cookie $l", 0) or die $!;
my $err = '';
alarm(1);
recv($fd, $r, 0xffff, 0) or $err = "$!";
alarm(0);
$err =~ /interrupt/i and next;
$err and die $err;
last;
}
$r =~ s/^\Q$cookie\E +//s or die $r;
$r =~ s/[\r\n]+$//s;
return $r;
@ -60,9 +68,11 @@ for my $iter (1 .. 1000) {
my ($a, $b) = @$i;
send($$fds[$a], 'rtp', 0, sockaddr_in($$outputs[$b][0], inet_aton($$outputs[$b][1]))) or die $!;
my $x;
my $err = '';
alarm(1);
recv($$fds[$b], $x, 0xffff, 0) or die $!;
recv($$fds[$b], $x, 0xffff, 0) or $err = "$!";
alarm(0);
$err && $err !~ /interrupt/i and die $err;
$x eq 'rtp' or die $x;
}
}


Loading…
Cancel
Save