1 package com.example.udpresponder;
3 import java.net.InetAddress;
4 import java.net.InetSocketAddress;
5 import java.net.DatagramPacket;
6 import java.net.DatagramSocket;
7 import android.app.Activity;
8 import android.os.Bundle;
9 import android.os.Handler;
10 import android.os.Message;
11 import android.os.SystemClock;
12 import android.widget.TextView;
13 import android.widget.EditText;
14 import android.widget.Button;
15 import android.view.View;
16 import android.view.View.OnClickListener;
18 public class UdpRespondActivity extends Activity {
23 private Handler mHandler = new Handler() {
24 public void handleMessage(Message msg) {
25 Bundle bdl = msg.getData();
26 tv.append(bdl.getString("ln"));
30 private OnClickListener mStartListener = new OnClickListener() {
31 public void onClick(View v) {
32 CharSequence cs = et.getText();
33 tv.append("Start pressed, data: " +
35 " (unimplemented)\n");
39 private OnClickListener mStopListener = new OnClickListener() {
40 public void onClick(View v) {
41 tv.append("Stop pressed, exiting\n");
47 public void onCreate(Bundle savedInstanceState) {
48 super.onCreate(savedInstanceState);
49 setContentView(R.layout.main);
50 tv = (TextView)findViewById(R.id.tv);
51 tv.append(" Starting\n");
52 et = (EditText)findViewById(R.id.text_entry);
53 Button btn_start = (Button)findViewById(R.id.btn_start);
54 btn_start.setOnClickListener(mStartListener);
55 Button btn_stop = (Button)findViewById(R.id.btn_stop);
56 btn_stop.setOnClickListener(mStopListener);
60 private void println(String str) {
61 Bundle bdl = new Bundle();
62 bdl.putString("ln", str + "\n");
63 Message msg = Message.obtain(mHandler);
68 protected void startBgThread () {
69 Thread t = new Thread() {
77 private void bgTask() {
78 DatagramSocket s = null;
80 s = new DatagramSocket(9999);
81 } catch (java.net.SocketException e) {
82 println("socket: " + e);
85 // InetSocketAddress sa = new InetSocketAddress(9999);
88 // } catch (IllegalArgumentException e) {
89 // println("bind: " + e);
91 // } catch (java.net.SocketException e) {
92 // println("bind: " + e);
95 println("Bound to port " + s.getLocalPort());
97 byte[] data = new byte[256];
98 DatagramPacket pkt = new DatagramPacket(data, 256);
101 } catch (java.io.IOException e) {
102 println("receive: " + e);
104 InetAddress ia = pkt.getAddress();
105 int ip = pkt.getPort();
106 byte[] id = pkt.getData();
107 println(ia.toString() + ":" +