Android下使用DatagramPacket进行局域网通信遇到的问题和分析

DatagramPacket简介

DatagramPacket是基于UDP协议的,另外还有一个类DatagramSocket,这两个类构成了一个网络链接,也即是不同于TCP协议的不可靠的网络链接.两个设备通信建立的步骤为:
1.通过DatagramSocket绑定本地和端口号(建立套接字);
2.使用DatagramPacket建立数据报;
3.通过DatagramSocket的send(datagrampacket)方法发送(到指定地址的端口);
4.在”1”指定的端口处通过DatagramSocket的receive(~)方法接受server端发送的反馈信息.
(关于DatagramSocket和DatagramPacket的详细使用请参考其他文章,比如:DatagramSocket使用详解)

项目中的使用

项目中涉及到通过局域网来控制一个带有两个电机的设备,和手机作为移动端的Client一样使用了Android的平台,并将其作为server端.按照DatagramSocket的基本用法写了demo之后,简单测试OK.引入项目中使用大致核心方法如下:

private String sendUDPCommand(String command){
        DatagramSocket ds = null;
        String str_receive = "";
        byte[] data = new byte[128];
        byte[] jsonData = new byte[128];
        String ip = SoundBoxManager.getInstance().currentIP();
        if (ip == null){
            return "0";
        }
        try{
            JSONObject json = new JSONObject();
            json.put("name", "XiaoleClient");
            json.put("Clientip", ip);
            json.put("ClientContent", command);
            json.put("wanted", "sendLocalControlCommand");
            String jsonString = json.toString();
            jsonData = jsonString.getBytes();

        }catch
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值