Thread UDP - nur bis 4 Zeichen senden?!: ... bei mehr geht Programm nicht?! (4 answers)
Opened by gummientchen at 2003-08-19 11:55

gummientchen
 2003-08-19 11:55
#38231 #38231
User since
2003-08-14
26 Artikel
BenutzerIn
[default_avatar]
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 &#36sock = new IO::Socket::INET(LocalPort => MYPORT, Proto => 'udp')
    or die "Can't create socket: &#36!";

my (&#36remote,&#36input,&#36c);
&#36remote = sockaddr_in(REMOTEPORT, inet_aton(REMOTEHOST));
my &#36rc = &#36sock->send(STRING,length(STRING),&#36remote);
die "&#36! &#36@" unless &#36rc;
&#36rc = &#36sock->recv(&#36input,32768,0);
die "&#36! &#36@" unless &#36rc;
print "received: &#36input\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 --

View full thread UDP - nur bis 4 Zeichen senden?!: ... bei mehr geht Programm nicht?!