24. 钛极OS之标准网络

钛极OS之标准网络


  TiJOS 支持标准JAVA的TCP, UDP,DNS网络接口, 还提供了网络时间协议NTP, MQTT,COAP等等客户端常用的接口,标准网络应用通过java.net来支持。

  标准网络应用开发说明

  TiJOS 支持了大部分java.net中的类,主要包括:

 

说明网络功能
SocketTCP 客户端套接字TCP Client
ServerSocketTCP 服务端套接字TCP Server
DatagramSocketUDP套接字, 常与DatagramPacket一起使用UDP
InetAddressInternet地址DNS
URI统一资源标识符 
 

  TiJOS标准网络应用开发与标准JAVA一致, 具体可参考相关资料, 下面介绍一些典型应用的开发流程。

 

  TCP 客户端

  典型的TCP Client开发流程如代码所示:

 

  1. <font size="3">//TCP服务器IP及PORT
  2. String host = "192.168.1.55";
  3. int port = 8080;
  4.  
  5. //连接服务器
  6. Socket client = new Socket(host, port);
  7.  
  8. //发送数据到服务端
  9. OutputStream output = client.getOutputStream();
  10. output.write("Hello, this is client".getBytes());
  11. output.flush();
  12.  
  13. //从服务端获取数据
  14. InputStream input = client.getInputStream();
  15. byte[] buffer = new byte[1024];
  16. while (true) {
  17. int len = -1;
  18. len = input.read(buffer);
  19. if(len > 0 ) //有数据收到
  20. {
  21. ...
  22. }
  23. }
  24. //关闭客户端
  25. client.close();</font>
复制代码  TCP 服务端

  典型TCP Server 开发流程如下所示:

 

  1. <font size="3">//Server Socket
  2. ServerSocket listener = new ServerSocket(8080);
  3. System.out.println("local ip = " + listener.getLocalSocketAddress());
  4.  
  5. //Connected client socket
  6. Socket socket = null;
  7.  
  8. //服务端等待客户端连接,默认超时时间: 60 seconds
  9. socket = listener.accept();
  10. System.out.println("a client is connected: " + socket.getRemoteSocketAddress());
  11.  
  12. //发送数据到客户端
  13. OutputStream out = socket.getOutputStream();
  14. out.write("Hello, This is the server.".getBytes());
  15. out.flush();
  16.  
  17. //读取客户端数据
  18. InputStream input = socket.getInputStream();
  19. byte[] buff = new byte[1024];
  20. while(true)
  21. {
  22. int len = 0;
  23. len = input.read(buff);
  24. if(len > 0)
  25. {
  26. System.out.println("message from client:" + new String(buff, 0, len));
  27. }
  28. }
复制代码  UDP

  典型的UDP应用如下所示:

 

  1. <font size="3">DatagramSocket udpSocket = new DatagramSocket();
  2. String remote = "192.168.1.55";
  3. int port = 8080;
  4.  
  5. //UDP 发送数据
  6. byte [] msg = ("Hello Server").getBytes();
  7. DatagramPacket dp = new DatagramPacket(msg, msg.length, InetAddress.getByName(remote), port);
  8. udpSocket.send(dp);
  9.  
  10. //UDP 接收数据
  11. byte [] buffer = new byte[1024];
  12. while(true)
  13. {
  14. dp.setData(buffer);
  15. dp.setAddress(null);
  16. //接收数据 默认超时时间10秒
  17. udpSocket.receive(dp);
  18.  
  19. String info = new String(dp.getData(), 0, dp.getLength());
  20. System.out.println("Received: " + info);
  21. System.out.println("Remote IP:" + dp.getAddress());
  22. }
复制代码

 

  更多详细介绍请见钛云物联官网:www.tijos.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值