open2($socket,$socket, "cmd.exe");
####
if (my $client = $server->accept( )) {
open2($output,$input, "cmd /k");
$select->add($client);
$select->add($output);
}
while(1) {
foreach my $current_socket($select->can_read())
{
my $data;
$current_socket->read($data, 10,0);
die unless $data;
print $data, "\n";
}
}
####
my $select = IO::Select->new( );
if (my $client = $server->accept( )) {
open3($input,$output, undef, "cmd.exe");
$select->add($client);
}
$output->blocking(0);
#fcntl($output, F_SETFL(), O_NONBLOCK());
while(1) {
foreach( my ($current_socket) = $select->can_read(.5))
{
last unless $current_socket;
my $data;
$current_socket->sysread($data,10,0);
die unless $data;
print $data, "\n";
}
#we hit the timeout, so check the terminal for new data
$output->sysread($data, 10, 0);
print $data, "\n";
}