中亿物联网卡大讲堂:本文介绍了socket物联通信如何进行HTTP协议配置、字符串解析、接口定义与使用,更好的让物联网行业开发者了解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传输时,需要明确一个是发送端,一个是接收端。
下边的代码是发送端实例:
public void sendDataByUDP() throws IOException {
//1.定义服务器的地址、端口号、数据
InetAddress address = InetAddress.getByName("192.168.1.253");
//InetAddress address_test=InetAddress.getLocalHost();
int port = 8234;
byte[] data = "北京云迹UDP测试".getBytes();
//2.创建数据报,包含发送的数据信息
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
//3.创建DatagramSocket对象
DatagramSocket socket = new DatagramSocket();
//4.向服务器端发送数据报
socket.send(packet);
//5.关闭socket
socket.close();
}
2、基于TCP协议的socket通信
两个端点的建立连接后会有一个传输数据的通道,这通道称为流,而且是建立在网络基础上的流,称之为socket流。该流中既有读取,也有写入。
tcp的两个端点:
客户端:对应的对象,Socket
服务端:对应的对象,ServerSocket
public void sendData() throws Exception {
//1、建立tcp的socket服务,最好明确具体的地址和端口。这个对象在创建时,就已经可以对指定ip和端口进行连接(三次握手)。
Socket socket = new Socket("10.1.31.69", 10002);
//2、如果连接成功,就意味着通道建立了,socket流就已经产生了。只要获取到socket流中的读取流和写入流即可,只要通过getInputStream和getOutputStream就可以获取两个流对象。
OutputStream outputStream = socket.getOutputStream();//获取了socket流中的输出流对象。
outputStream.write("tcp协议通信".getBytes());
//3、关闭资源。
socket.close();
}
中亿物联网,作为成熟的物联网解决方案提供商,提醒对投资物联卡代理、企业物联卡购买有兴趣的小伙伴在选择移动物联卡、电信物联卡、联通物联卡供应商的时候,一定要选择资质齐全,售前售后服务完善,物联卡管理平台稳定的物联网服务商。
还有这些物联卡相关资讯您肯定想知道:关于物联卡如何续费?企业办理物联卡需要注意哪些事项!物联网卡的应用场景有哪些?请关注“物联无疆”公众号,回复关键词“物联卡”即可查看!