Android UDP Socket Sending Client
-
Android UDP Sending example create a UDP client, send data by AsyncTask or Thread, use DatagramSocket, DatagramPacket
package com.example.udp_client; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.widget.RelativeLayout; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /* In manifests file, add <uses-permission android:name="android.permission.INTERNET" /> Run sending UDP data by AsyncTask or Thread */ public class MainActivity extends Activity { private DatagramSocket ds=null; private InetAddress addr; private int port; byte[] bytes; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT); RelativeLayout layout = new RelativeLayout(this); setContentView(layout, lp); // prepare data to be sent try { JSONObject obj = new JSONObject(); obj.put("vid", 1); obj.put("udid", "112233"); obj.put("lat", 1.345f); obj.put("lng", 103.567); String s = obj.toString(); bytes = s.getBytes("UTF-8"); } catch (JSONException e){System.out.println(e.toString());} catch(IOException e) {System.out.println(e.toString());} //* create UDP Socket try { addr = InetAddress.getByName("192.168.1.41"); port = 16099; ds = new DatagramSocket(); } catch(IOException e) {System.out.println(e.toString());} //* Sending UDP data by AsyncTask in a thread AsyncTask.execute(new Runnable(){ @Override public void run(){ try { DatagramPacket packet=new DatagramPacket(bytes,bytes.length,addr,port); ds.send(packet); Log.d("ExampleOut","sent 1"); } catch(IOException e) {System.out.println(e.toString());} } }); //* Or Sending UDP data by Thread Thread thread = new Thread(new Runnable(){ @Override public void run() { try { DatagramPacket packet=new DatagramPacket(bytes,bytes.length,addr,port); ds.send(packet); Log.d("ExampleOut","sent 2"); } catch (IOException e) {System.out.println(e.toString());} } }); thread.start(); } }