Hallo, wenn ich im LAN einen TCP Connect zu einem Rechner versuche, den es nicht gibt, z.B: $ perl -MSocket -MTime::HiRes=time -le ' my $t=time; socket my $s, PF_INET, SOCK_STREAM, getprotobyname("tcp") or die "socket: $!"; connect $s, scalar sockaddr_in(68, inet_aton("192.168.9.30")) or warn "connect: $!"; print time-$t' connect: No route to host at -e line 1. 3.00505399703979 dann kriege ich einen Timeout nach ziemlich genau 3 Sekunden. Probiere ich das im Internet ist der Timeout wesentlich länger, 188.99 Sekunden. Gibt es irgendeinen Socket Option oder sowas, die ich vor dem connect() setzen kann, um den Timeout zu setzen? Ich möchte das möglichst millisekundengenau. Geht das? Ich habe von SO_RCVTIMEO und SO_SNDTIMEO gelesen und letzteres scheint es zu sein, obwohl in der Beschreibung nur was von sendmsg(2) und send(2) steht: perl -MSocket -MTime::HiRes=time -le ' my $t=time; socket my $s, PF_INET, SOCK_STREAM, getprotobyname("tcp") or die "socket: $!"; setsockopt $s, SOL_SOCKET, SO_SNDTIMEO, pack("q2", 0, 500000) or die "setsockopt(SNDTIMEO): $!"; connect $s, scalar sockaddr_in(68, inet_aton("81.200.194.40")) or warn "connect: $!";print time-$t' connect: Operation now in progress at -e line 1. 0.499557018280029 Ist das die richtige Vorgehensweise? Oder gibt es einen besseren Weg, das Ganze zu erreichen (non-blocking connect möchte ich nicht)? Danke, Torsten -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org