|
鈦極OS(TiJOS)支持標(biāo)準(zhǔn)Java的Socket類, 編程方法與標(biāo)準(zhǔn)Java一樣, 可參考相關(guān)例程, 下面以一個(gè)tcp client的例程說明如何在鈦極OS(TiJOS)中通過TCP連接網(wǎng)絡(luò)中的服務(wù)器。
下面以TiKit-T600-ESP8266A作為平臺介紹如何在鈦極OS(TiJOS)中進(jìn)行網(wǎng)絡(luò)開發(fā).
網(wǎng)絡(luò)配置在進(jìn)行網(wǎng)絡(luò)編程之前,需要首先通過Ti-Device Manager對TiKit進(jìn)行網(wǎng)絡(luò)設(shè)置,包括WLAN, IP, DNS等等
創(chuàng)建工程通過Ti-Dev Studio創(chuàng)建TcpClient工程及TcpClient類
啟動(dòng)網(wǎng)絡(luò)連接在進(jìn)行網(wǎng)絡(luò)相關(guān)的編程之前, 首先需要在代碼中啟動(dòng)網(wǎng)絡(luò)連接, 啟動(dòng)后TiKit會(huì)去連接設(shè)置的無線路由,如果
try
{
//啟動(dòng)連接WLAN, 10秒超時(shí)
//WLAN的設(shè)置可通過Ti-Device Manager配置
TiWLAN.getInstance().startup(10);
//啟動(dòng)DNS
TiDNS.getInstance().startup();
}
catch(IOException ex)
{
//網(wǎng)絡(luò)連接失敗
ex.printStackTrace();
return ;
}
網(wǎng)絡(luò)連接成功后,可通過創(chuàng)建socket的方式連接指定服務(wù)器,在測試時(shí)可先啟動(dòng)一個(gè) TCP Server測試工具
//TCP服務(wù)器IP及PORT
數(shù)據(jù)發(fā)送接收
連接成功后,即可進(jìn)行數(shù)據(jù)的發(fā)送和接收操作,通過socket的getInputStream和getOutputStream獲取相應(yīng)的stream進(jìn)行數(shù)據(jù)讀寫操作即可, 注意,在寫操作時(shí),如果確認(rèn)數(shù)據(jù)已寫完,需要調(diào)用flush來即時(shí)將數(shù)據(jù)發(fā)送到服務(wù)器。
OutputStream output = client.getOutputStream();
//Send data to the TCP server
output.write("Hello, this is client".getBytes());
output.flush();
//Get remote data from the server
InputStream input = client.getInputStream();
byte[] buffer = new byte[1024];
while (true) {
int len = -1;
len = input.read(buffer);
if(len > 0)
{
System.out.println("message form server:" + new String(buffer, 0, len));
//echo to the server
output.write(buffer, 0, len);
output.flush();
}
}
關(guān)閉
在應(yīng)用結(jié)束,請關(guān)閉socket以釋放資源,一般在finally中通過close函數(shù)來完成。
finally
{
try {
client.close();
} catch (IOException e) {}
}
以上即為在鈦極OS(TiJOS)中進(jìn)行網(wǎng)絡(luò)編程的一般流程,與標(biāo)準(zhǔn)Java類似, 不同的是需要在使用網(wǎng)絡(luò)前需要啟動(dòng)相應(yīng)的網(wǎng)絡(luò)連接。
相應(yīng)的例程源碼請參考TcpClient.java