Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Translating script from perl to java

$
0
0
Hey guys..

I really need some help here.. im kinda new to java, and i have this script written in perl..

I need its functionality in my java program, so i need it translated.. but all of this base64 encoding and the socket communication.. i just cant make it work..

I really hope one of you guys can translate it for me, as i know it will take like 2 minutes for anyone programming java on daily basis..

#!/usr/bin/perl

use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;

#IP Address of TV
my $tvip = "192.168.100.1";

print "Content-type: text/html\n\n";

my $sock = new IO::Socket::INET (
 PeerAddr => $tvip, 
 PeerPort => '55000', 
 Proto => 'tcp', 
); 
die "Could not create socket: $!\n" unless $sock; 

#Normal remote keys
#KEY_0
#KEY_1
#KEY_2
#KEY_3
#KEY_4
#KEY_5
#KEY_6
#KEY_7
#KEY_8
#KEY_9
#KEY_UP
#KEY_DOWN
#KEY_LEFT
#KEY_RIGHT
#KEY_MENU
#KEY_PRECH
#KEY_GUIDE
#KEY_INFO
#KEY_RETURN
#KEY_CH_LIST
#KEY_EXIT
#KEY_ENTER
#KEY_SOURCE
#KEY_AD
#KEY_PLAY
#KEY_PAUSE
#KEY_MUTE
#KEY_PICTURE_SIZE
#KEY_VOLUP
#KEY_VOLDOWN
#KEY_TOOLS
#KEY_POWEROFF
#KEY_CHUP
#KEY_CHDOWN
#KEY_CONTENTS
#KEY_W_LINK #Media P
#KEY_RSS #Internet
#KEY_MTS #Dual
#KEY_CAPTION #Subt
#KEY_REWIND
#KEY_FF
#KEY_REC
#KEY_STOP

#Bonus buttons not on the normal remote:
#KEY_TV

#Don't work/wrong codes:
#KEY_CONTENT
#KEY_INTERNET
#KEY_PC
#KEY_HDMI1
#KEY_OFF
#KEY_POWER
#KEY_STANDBY
#KEY_DUAL
#KEY_SUBT
#KEY_CHANUP
#KEY_CHAN_UP
#KEY_PROGUP
#KEY_PROG_UP

my $myip = "192.168.100.2"; #Doesn't seem to be really used
my $mymac = "01-23-45-67-89-ab"; #Used for the access control/validation, but not after that AFAIK
my $appstring = "iphone..iapp.samsung"; #What the iPhone app reports
my $tvappstring = "iphone.UE32C6500.iapp.samsung"; #Might need changing to match your TV type
my $remotename = "Perl Samsung Remote"; #What gets reported when it asks for permission/also shows in General->Wireless Remote Control menu

my $messagepart1 = chr(0x64) . chr(0x00) . chr(length(encode_base64($myip, ""))) . chr(0x00) . encode_base64($myip, "") . chr(length(encode_base64($mymac, ""))) . chr(0x00) . encode_base64($mymac, "") . chr(length(encode_base64($remotename, ""))) . chr(0x00) . encode_base64($remotename, "");
my $part1 = chr(0x00) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart1)) . chr(0x00) . $messagepart1;

print $sock $part1;
print $part1;
print "\n";

my $messagepart2 = chr(0xc8) . chr(0x00);
my $part2 = chr(0x00) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart2)) . chr(0x00) . $messagepart2;
print $sock $part2;
print $part2;
print "\n";

#Preceding sections all first time only

if (defined(param("key"))) {
   #Send remote key
   my $key = "KEY_" . param("key");
   my $messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(length(encode_base64($key, ""))) . chr(0x00) . encode_base64($key, "");
   my $part3 = chr(0x00) . chr(length($tvappstring)) . chr(0x00) . $tvappstring . chr(length($messagepart3)) . chr(0x00) . $messagepart3;
   print $sock $part3;
   print $part3;
   print "\n";
} elsif (defined(param("text"))) {
   #Send text, e.g. in YouTube app's search, N.B. NOT BBC iPlayer app.
   my $text = param("text");
   my $messagepart3 = chr(0x01) . chr(0x00) . chr(length(encode_base64($text, ""))) . chr(0x00) . encode_base64($text, "");
   my $part3 = chr(0x01) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart3)) . chr(0x00) . $messagepart3;
   print $sock $part3;
   print $part3;
   print "\n";   
}

close($sock);

print "\n\n";


THANK YOU!

Mathias.

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>