how to connect a python client to java server with TCP sockets

Hello folks,

this time I would like to share my knowledge about connecting a java server program with a python client program using TCP socket communication. Yesterday I spent quite a lot time to get this running, by reading several tutorials on socket programming but I only got java-java or python-python communication running smoothly.

Ok, my key problem was that java expects the end-of-line sign (EOL) in some way, that the python examples didn’t supply. It all depends on the combination of what kind of functions are used to read and write from and to the sockets. Continue reading

install Dropbox on a headless Ubuntu 10.04 LTS server

Hello folks,
in this post I would like to show you how easy it is to set up Dropbox on a Ubuntu server only using a ssh connection.

Ok, where to start. Hmm, first of all here is my setup:
I have a MiniITX mainboard with an Intel Atom CPU, 2GB RAM and 160GB HDD running 24/7 (almost ^_^). This system serves my as NAT Router to separate my network from the LAN in the building I am living. I bought it 3-4 years ago and it was really worth its price and by the way, energy consumption is really low (< 15 Watt). This system runs a Ubuntu 10.04 LTS server version and on this system I set up a Dropbox to have access to my account there too.

These sources were helpfull during my approach:
http://1000umbrellas.com/2010/04/30/how-to-install-dropbox-on-a-headless-ubuntu-10-04-server
http://ubuntuservergui.com/ubuntu-server-guide/install-dropbox-ubuntu-server

and basically this post is a mixture of both of them 😉
Continue reading

run SL4A python script from within Android app

Hello folks,
in this post I wanna give you a short introduction how you can launch scripts (specifically python scripts) from your android application.

To follow this tutorial you have to have SL4A installed on your device / emulator.
In case you don’t know SL4A, you can check my previous post on that: https://norwied.wordpress.com/2012/03/28/scripting-on-android/ and I also found another quite good tutorial on how to install SL4A here: https://www.ibm.com/developerworks/opensource/library/mo-python-sl4a-1/index.html

Continue reading

call python script from Java app

Hello readers,

in this post I wanna give you a brief description how you can call python code from with a java program. For that purpose we will use two very simple “Hello World” programs, one in python, one for java.

First the python script. Create a new file “~/python/helloPython.py” with the following content:

import os
from stat import *

print "Hello World from python"

Now fire up your eclipse and create a default java application. Create a new java class named “PythonCaller”. The content of this new file will look like this:

package org.norbert;

import java.io.*;

public class PythonCaller {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// set up the command and parameter
String pythonScriptPath = "/home/norbert/python/helloPython.py";
String[] cmd = new String[2];
cmd[0] = "python"; // check version of installed python: python -V
cmd[1] = pythonScriptPath;

// create runtime to execute external command
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);

// retrieve output from python script
BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while((line = bfr.readLine()) != null) {
// display each output line form python script
System.out.println(line);
}
}
}

So what is this doing? Basically we execute the python script by envoking python2.6 and provide the path to the script as parameter, as you would normally do it if you exec the script in a terminal/bash.
The output generated by the script is then read line by line with a BufferedReader and displayed in the terminal where we execute the java application.

You can execute the java program in eclipse by click on the green run button or compile and exec it in a terminal with:

cd workspace/JavaPythonCall/src/org/norbert
javac PythonCaller.java
cd ../..
java org.norbert.PythonCaller

result:

Hello World from python

Sweet ^_^ yeah 😉 This was a quick one, but I hope this helps.
cheers
norbert