bc贷

bc贷物联网卡大讲堂:Socket物联接入使用详解

2017-10-08 3172来源:bc贷物联网 分类: 物联网

  bc贷物联网卡大讲堂:本文介绍了socket物联通信如何进行HTTP协议配置、字符串解析、接口定义与使用,更好的让物联网行业开发者了解Socket物联的原理和代码实现。


bc贷物联网卡大讲堂:Socket物联接入使用详解


  一、需求

目前,讲解物联仅支持HTTP请求以及特⛎定的灯控接口,相关文档《超级后台配置物联接口》以前在worktitle提交过。部分公司希望物联能够支持socket通信,通过socket通信控制设备开关实现物联,如讲解过程中正在讲解某个素材的时候可以控制视频的播放。

  二、实现步骤

  1、在超级后台讲解的素材中配置物联接口(格式下边介绍) 

  2、在讲解APP中,通过HTTP协议♏获得到配置好的物联接口,把该物联接口解🌌析成我们可用的字符串 

  3、通过socket发送命令到服务端,完成通信。

  三、接口格式定义及使用

  1、物联接口格式定义:socket#协议#ip#端口号#命令

  socket:物联接口标识,表示该物联接口是socket协议的 

  协议:物联接口中socket协议,分为UDP、TCP 

  端口号:物联接口中socket所需的端口号 

  命令:物联接口中socket在客户端发送给服务端的具体命令

  示例:socket#tcp#ౠ192.168.🦄1.180#15000#1B43DD0D0A6C0080

  2、使用:在讲解素材中的物联接口处直接填入以上格式的物联接口即可

  四、Socket通信原理及代码实现

 🐓 Socket通信是为网络服务提供的一种机制,通信的两端都有Socket,网络通信其实就是Socket间的通信꧋,数据在两个Socket间通过IO传输。

  1、基于UDP协议的socket通信 

  直接操作UDP不可能,应该将UDP封装成对象DatagramSocket,封装了UDP传输协议的socket对象。因为数据包中包含的信息较多,为了操作这些信息方便,也🔯一样会将其封装成对象DatagramPacket,通过这个对象中的方法,就可以获取到数据包中的各种信息。 

  DatagramSocket具备发送和接受功能,🅰在进行udp传输时,需要明确一个𒅌是发送端,一个是接收端。

  下边的代码是发送端实例:


  pu✃blic void sendDataByUDP() throws IOException {


    //1.定义服务器的地址、端口号、数据

 

   InetAddr🌟ess address = In꧙etAddress.getByName("192.168.1.253");


    //InetAddress address_test=InetAdd🅺ress.getLocalH꧒ost();


    int port = 8234;


    byte[] data = 𝔉"北京云迹UDP测试".getByt𝔉es();


    //2.创建数据报,包含发送的数据信息


    DatagramPacket packet = new DatagramPacket(data, data.length,🅰 address, port);


    //3.创建DatagramSocket对象


&nbs♕p;   DatagramSocket socket = new Da♈tagramSocket();

 

   //4.向服务器端发送数据报


    socket.send(packet);


    //5.关闭socket


    socket.close();


}


  2、基于TCP协议的socket通信

  两个端点的建立连接后会有一个传输数据的通道,这通道称为流,而且是建立在网络基础上的流,称之为ꦅsocket流。该流中既有读取,也有写入。

  tcp的两个端点: 

  客户端:对应的对象,Socket 

  服务端:对应的对象,ServerSocket

  public void sendData() throws Exception {

  //1、建立tcp的socket服务,最好明确具体的地址和端口♊🎃。这个对象在创建时,就已经可以对指定ip和端口进行连接(三次握手)。

  Socke♓t socket = new S꧑ocket("10.1.31.69", 10002);

  //2、如果连接成功,就意味着通道建立了,socket流就已经产生了。只要获取到socket流中的读取流和写入流即可,只要通过getInputStream和geไtOutputStream就可以获取两个流对象。

  OutputStream ou𝓡tputStream = socket.getOutputStream();//获取了socket流中的输出流对象。

  outputStream.write("tcp协议通信".getBytes());

  //3、关闭资源。

  socket.close();


}

  bc贷物联网,作为成熟的物联网解决方案提供商,提醒对投资物联卡代理、企业物联卡购买有兴趣的小伙伴在选择bc贷:移动物联卡、电信物联卡、联通物联卡供应商的时候,෴一定要选择资质齐全,售前售后服务完善,物联卡管理平台稳定的物联网服务商。

  还有这些物联卡相关资讯您肯定想知道:🍎关于物联卡如何续费?企业办理物联卡需要注意哪些事项!物联网卡的应用场景有哪些?请关注“物联无疆”公众号,回复关键🔯词“物联卡”即可查看!