Thread UDP - nur bis 4 Zeichen senden?!: ... bei mehr geht Programm nicht?!
(4 answers)
Opened by gummientchen at 2003-08-19 11:55
Moin, hab hier ein völlig seltsames Problem... folgender beispielhafter Code:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/local/bin/perl use constant MYPORT => 10002; use constant REMOTEPORT => 10001; use constant REMOTEHOST => '192.168.23.1'; use constant STRING => 'PING'; use Socket; use IO::Socket; # create a socket my $sock = new IO::Socket::INET(LocalPort => MYPORT, Proto => 'udp') or die "Can't create socket: $!"; my ($remote,$input,$c); $remote = sockaddr_in(REMOTEPORT, inet_aton(REMOTEHOST)); my $rc = $sock->send(STRING,length(STRING),$remote); die "$! $@" unless $rc; $rc = $sock->recv($input,32768,0); die "$! $@" unless $rc; print "received: $input\n"; funktioniert so wie er ist. Sobald ich aber bei STRING ein Zeichen mehr eintrage (Bsp.: "PINGU"), stirbt das Ding entweder mit einem "unknown error" beim send, oder es passiert einfach gar nix, Programm hängt :( interessanterweise geht recv() auch mit größeren Datenmengen (hab von anderen Programmen Pakete "abgefangen", die bis 56 Byte groß waren), beim send() nur bis 4... ??? Was hab ich verpasst? Danke! <edit> Achso, am Netzwerk kanns nicht liegen, das geht. Außerdem tritt das Problem auch auf, wenn ich nur lokal (127.0.0.1) arbeite.</edit>\n\n <!--EDIT|gummientchen|1061279828--> -- never trust a man who can count to 1023 on his fingers --
|