中億物聯網卡大講堂:本文介紹了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();
}
中億物聯網,作為成熟的物聯網解決方案提供商,提醒對投資物聯卡代理、企業物聯卡購買有興趣的小伙伴在選擇移動物聯卡、電信物聯卡、聯通物聯卡供應商的時候,一定要選擇資質齊全,售前售后服務完善,物聯卡管理平臺穩定的物聯網服務商。
還有這些物聯卡相關資訊您肯定想知道:關于物聯卡如何續費?企業辦理物聯卡需要注意哪些事項!物聯網卡的應用場景有哪些?請關注“物聯無疆”公眾號,回復關鍵詞“物聯卡”即可查看!