本帖最后由 x286212455 于 2018-5-9 14:06 编辑

钛极OS(TiJOS)支持标准Java的Socket类, 编程方法与标准Java一样, 可参考相关例程, 下面以一个tcp client的例程说明如何在钛极OS(TiJOS)中通过TCP连接网络中的服务器。
下面以TiKit-T600-ESP8266A作为平台介绍如何在钛极OS(TiJOS)中进行网络开发.

网络配置
在进行网络编程之前,需要首先通过Ti-Device Manager对TiKit进行网络设置,包括WLAN, IP, DNS等等

创建工程
通过Ti-Dev Studio创建TcpClient工程及TcpClient类
启动网络连接
在进行网络相关的编程之前, 首先需要在代码中启动网络连接, 启动后TiKit会去连接设置的无线路由,如果
  1. try
  2. {
  3.   //启动连接WLAN, 10秒超时
  4.   //WLAN的设置可通过Ti-Device Manager配置
  5.   TiWLAN.getInstance().startup(10);
  6.   //启动DNS
  7.   TiDNS.getInstance().startup();
  8. }
  9. catch(IOException ex)
  10. {
  11.   //网络连接失败
  12.   ex.printStackTrace();
  13.   return ;
  14. }
连接服务器
网络连接成功后,可通过创建socket的方式连接指定服务器,在测试时可先启动一个 TCP Server测试工具
  1. //TCP服务器IP及PORT
  2. String host = "192.168.1.55";
  3. int port = 8080;
  4. Socket client = null;
  5. //Connect to the server with TCP
  6. client = new Socket(host, port);
数据发送接收
连接成功后,即可进行数据的发送和接收操作,通过socket的getInputStream和getOutputStream获取相应的stream进行数据读写操作即可, 注意,在写操作时,如果确认数据已写完,需要调用flush来即时将数据发送到服务器。
  1. OutputStream  output = client.getOutputStream();
  2. //Send data to the TCP server
  3. output.write("Hello, this is client".getBytes());
  4. output.flush();
  5. //Get remote data from the server
  6. InputStream input = client.getInputStream();
  7. byte[] buffer = new byte[1024];
  8. while (true) {
  9.         int len = -1;
  10.         len = input.read(buffer);
  11.         if(len > 0)
  12.         {
  13.             System.out.println("message form server:" + new String(buffer, 0, len));
  14.             //echo to the server
  15.             output.write(buffer, 0, len);
  16.             output.flush();
  17.         }
  18. }
关闭
在应用结束,请关闭socket以释放资源,一般在finally中通过close函数来完成。
  1. finally
  2. {
  3.     try {
  4.             client.close();
  5.         } catch (IOException e) {}
  6. }
结论
以上即为在钛极OS(TiJOS)中进行网络编程的一般流程,与标准Java类似, 不同的是需要在使用网络前需要启动相应的网络连接。
相应的例程源码请参考TcpClient.java