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