#!/usr/bin/perl use strict; use threads; use IO::Socket; use IO::Select; my $thrcnt : shared = 0; my $port = 7070; my $socket = IO::Socket::INET->new( LocalPort => $port, Type => SOCK_STREAM, Listen => SOMAXCONN, ReuseAddr => 1 ) or die "Can't create listen socket: $!"; while( my $client = $socket->accept ) { my $thr = threads->create( \&process_request, $client ); print "\rStarting ", $thr->tid; $thr->detach; } print "done: exit\n"; sub process_request { my $socket = $_[0]; local %ENV = (); ++$thrcnt; my $line = <$socket>; my $ltid = threads->tid(); print "loop: $thrcnt, $ltid : $line"; close $socket; } __END__ Starting 9999loop: 1, 9999 : Hello:3011 Starting 10000loop: 1, 10000 : Hello:1903 Starting 10001loop: 1, 10001 : Hello:3012 Starting 10002loop: 1, 10002 : Hello:1904 #### c:\test>tasklist /fi "pid eq 10624" Image Name PID Session Name Session# Mem Usage ========================= ====== ================ ======== ============ tperl.exe 10624 0 7,676 K