To send data in a meaningful way between two Android devices, you must use a TCP connection. To do this, you need the IP address and port on which another device is listening.
Examples are taken from here .
For the server side (listener side), a server socket is required:
try { Boolean end = false; ServerSocket ss = new ServerSocket(12345); while(!end){ //Server is waiting for client here, if needed Socket s = ss.accept(); BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter output = new PrintWriter(s.getOutputStream(),true); //Autoflush String st = input.readLine(); Log.d("Tcp Example", "From client: "+st); output.println("Good bye and thanks for all the fish :)"); s.close(); if ( STOPPING conditions){ end = true; } } ss.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
For the client side, you need a socket that connects to the server socket. Please replace "localhost" with remote ip-address or hostname Android devices:
try { Socket s = new Socket("localhost",12345); //outgoing stream redirect to socket OutputStream out = s.getOutputStream(); PrintWriter output = new PrintWriter(out); output.println("Hello Android!"); BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); //read line(s) String st = input.readLine(); //. . . //Close connection s.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
source share