package com.example.jinchao.dimenstest;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.DatagramPacket;import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.MulticastSocket;import java.net.ServerSocket;import java.net.Socket;import java.nio.charset.StandardCharsets;public class MainActivity extends Activity {    private static final String TAG = MainActivity.class.getSimpleName();    private static final int PORT = 5734;    private MulticastSocket multicastSocket;    private DatagramPacket datagramPacket;    private InetAddress group;    private Button button1;    private Button button2;    private Button button3;    private TextView result;    private EditText editText;    private HandlerThread handlerThread;    private Handler handler;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        result = findViewById(R.id.result);        button1 = findViewById(R.id.button1);        button2 = findViewById(R.id.button2);        button3 = findViewById(R.id.button3);        editText = findViewById(R.id.edit1);        handlerThread = new HandlerThread(TAG);        handlerThread.start();        handler = new Handler(handlerThread.getLooper());        init();        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                handler.post(new Runnable() {                    @Override                    public void run() {                        String msg = "hello";                        for (int i = 0; i < 1000; i++) {                            String message = msg + i;                            datagramPacket = new DatagramPacket(message.getBytes(), message.length(), group, PORT);                            try {                                Log.d(TAG, "send: " + message);                                multicastSocket.send(datagramPacket);                                Thread.sleep(1000);                            } catch (Exception e) {                                e.printStackTrace();                            }                        }                    }                });            }        });        button2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                handler.post(new Runnable() {                    @Override                    public void run() {                        byte[] buffer = new byte[512];                        DatagramPacket recv = new DatagramPacket(buffer, buffer.length, group, PORT);                        while (true) {                            try {                                multicastSocket.receive(recv);                                Log.d(TAG, "rev: " + new String(buffer, StandardCharsets.UTF_8));                            } catch (IOException e) {                                e.printStackTrace();                            }                        }                    }                });            }        });        button3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                handler.post(new Runnable() {                    @Override                    public void run() {                    }                });            }        });    }    private void init() {        try {            multicastSocket = new MulticastSocket(PORT);            group = InetAddress.getByName("230.0.0.0");            multicastSocket.setLoopbackMode(false);            multicastSocket.setTimeToLive(1);            multicastSocket.joinGroup(group);        } catch (IOException e) {            e.printStackTrace();        }    }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android中的Binder(android内核学习记录)
  2. 如何高效地输出iOS和Android标注和切图
  3. Android增量升级的方法和原理
  4. Android智能手机恶意程序半年增加14.1倍
  5. android scroller overscroller用法
  6. SQLite3命令行使用查询android的telephon
  7. 2.1、Android Studio 开发流程
  8. Android模块编译过程中的错误no rules to
  9. 1.android 通过wifi调用打印机
  10. Android异步加载图像小结----演化理解 An