找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6141|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于ESP8266的物聯(lián)網(wǎng)APP設(shè)計(jì)Socket

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:647283 發(fā)表于 2019-12-7 13:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
之前做了一個(gè)小的APP,可以與原子的ESP8266通信,實(shí)現(xiàn)發(fā)送字符串,如果你也恰好想要用到這類功能,希望這篇帖子能夠幫助到你。
準(zhǔn)備條件:
1.自身?xiàng)l件:
   (1)有一點(diǎn)點(diǎn)Java基礎(chǔ),不會(huì)也沒太大關(guān)系。
2.硬件條件
   (1)一臺電腦 安裝好Android studio 與 串口調(diào)試助手
     (2) 兩部手機(jī)(一部手機(jī)也可以,但需要路由器)
     (3) USB轉(zhuǎn)TTL模塊
好了,條件就這么多。

本文使用的是Socket通信,也就是套接字,具體概念有興趣可以自行百度,本文不在介紹,因?yàn)闆]什么實(shí)際用處。我們只需要知道它可以與ESP8266 WIFI 通信,其他的先不管
Socket有兩個(gè)主要參數(shù) IP 和 PORT,也就是目標(biāo)設(shè)備(ESP8266)在局域網(wǎng)下的 IP地址 和開放的端口,注意,IP地址由路由器或者手機(jī)熱點(diǎn)分配,端口地址由模塊 AT指令配置。

主要內(nèi)容是這樣的:

Socket mSocket;//新建了一個(gè) socket 對象,但是沒有分配內(nèi)存等等,不可以使用
mSocket = new Socket(Ip,port);//分配了實(shí)體,此后可以由輸出流輸入流 寫入 和讀出待發(fā)送(接收)的數(shù)據(jù)
out
=
new
PrintStream(
mSocket
.getOutputStream());//獲得輸出流

out
.write((
"hello world!"
+
'
\n
'
).getBytes(
"utf-8"
));//寫入輸出流
out
.flush();//發(fā)送數(shù)據(jù)好了,主要內(nèi)容就這么多,是不是很簡單,快去試試吧。
注意有一個(gè)小坑,就是 new Socket(Ip,port);  這種與Socket有關(guān)的操作是不可以放在主線程之中的,因?yàn)锳ndroid規(guī)定了這些操作是會(huì)阻塞主線程的,解決辦法就是放在一個(gè)子線
程之中操作,就可以了。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表