Cómo hacer una conexión udp en android

Estoy tratando de hacer una conexión entre migalaxy tab y milaptop. Así que estoy intentando ejecutar la actividad del servidor en mi computadora portátil y la actividad del cliente en mi pestaña, pero no funciona. Aquí está el servidor y el código del cliente. ¿Dónde está el error?

SERVIDOR:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView txt = (TextView)findViewById(R.id.textView1);

    int port = 12345;
    byte [] message = new byte [1500];
    DatagramPacket p = new DatagramPacket (message,message.length);
    try {
        InetAddress serveraddr = InetAddress.getByName("192.168.1.116");
        DatagramSocket s = new DatagramSocket (port,serveraddr);
        while (true){
            s.receive(p);
            String text = new String (message,0,p.getLength());
            txt.setText(text);
        }
    } catch (SocketException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

CLIENTE:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final EditText edt = (EditText)findViewById(R.id.editText1);
    Button btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            String msg = edt.getText().toString();
            int port = 12345;
            try {
                DatagramSocket s = new DatagramSocket();
                InetAddress local  = InetAddress.getByName("192.168.1.116");
                int msg_lenght = msg.length();
                byte []message = msg.getBytes();
                DatagramPacket p = new DatagramPacket(message,msg_lenght,local,port);
                s.send(p);
            } catch (SocketException e) {

                e.printStackTrace();
            } catch (UnknownHostException e) {

                e.printStackTrace();
            } catch (IOException e) {

                e.printStackTrace();
            }

        }
    });
}

Aquí está elIniciar sesión :

09-17 23:49:55.190: D/dalvikvm(5892): Late-enabling CheckJNI
09-17 23:49:55.690: D/CLIPBOARD(5892): Hide Clipboard dialog at Starting input: finished by someone else... !
09-17 23:49:59.590: D/AndroidRuntime(5892): Shutting down VM
09-17 23:49:59.590: W/dalvikvm(5892): threadid=1: thread exiting with uncaught exception (group=0x40c4f1f8)
09-17 23:49:59.590: E/AndroidRuntime(5892): FATAL EXCEPTION: main
09-17 23:49:59.590: E/AndroidRuntime(5892): android.os.NetworkOnMainThreadException
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:175)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at libcore.io.IoBridge.sendto(IoBridge.java:463)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at java.net.DatagramSocket.send(DatagramSocket.java:307)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at com.example.udpclient.MainActivity$1.onClick(MainActivity.java:36)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.view.View.performClick(View.java:3620)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.view.View$PerformClick.run(View.java:14322)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.os.Handler.handleCallback(Handler.java:605)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.os.Looper.loop(Looper.java:137)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at android.app.ActivityThread.main(ActivityThread.java:4507)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at java.lang.reflect.Method.invokeNative(Native Method)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at java.lang.reflect.Method.invoke(Method.java:511)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
09-17 23:49:59.590: E/AndroidRuntime(5892):     at dalvik.system.NativeStart.main(Native Method)
09-17 23:50:34.320: I/Process(5892): Sending signal. PID: 5892 SIG: 9

Respuestas a la pregunta(4)

Su respuesta a la pregunta