#!/usr/bin/perl -w use IPC::Open2; use Symbol; use Socket; $| = 1; $WRITER = gensym (); $READER = gensym (); $delimiter = "send-move-to-server"; $remote = shift; $port = shift; $serverpath = shift; $prog_name = shift; #$begin_routine = shift; print $remote; print $port; print $serverpath; print $prog_name; #print $begin_routine; #print "Initiating akcl...\n"; #open2 ($READER, $WRITER, "/pkg/akcl/bin/akcl") || die "Couldn't open akcl: $!\n\n"; open2($READER, $WRITER, "java ". $prog_name. " ".$serverpath. $port) || die "Couldn't open akcl: $!\n\n"; print "Connecting to server...\n"; $iaddr = inet_aton ($remote) or die "No host: $remote\n"; $paddr = sockaddr_in ($port, $iaddr); $proto = getprotobyname ('tcp'); socket (SOCK, PF_INET, SOCK_STREAM, $proto) or die "Socket: $!\n"; connect (SOCK, $paddr) || die "Connect: $!\n"; print "Ready to Begin\n"; chomp ($filename = ); print $filename; print $WRITER "(setq output-delimiter '$delimiter)\n"; print $WRITER "(setq board-file \"$filename\")\n"; print $WRITER "(load \"$prog_name\")\n"; #print $WRITER "($begin_routine)\n"; while ($input = <$READER>) { ($input =~ /^\W+$delimiter(.*)/i) or next; # eliminate possibly empty value resulting from the split @move = grep /\d/, join (" ", split /\D+/, $1); next unless @move; $data = join (" ", split /\D+/, $1) . "\n"; # print "MOVE => $data"; syswrite (SOCK, $data, length $data, 0); } close $WRITER; close $READER; close SOCK;