钛极OS之标准网络 TiJOS 支持标准JAVA的TCP, UDP,DNS网络接口, 还提供了网络时间协议NTP, MQTT,COAP等等客户端常用的接口,标准网络应用通过java.net来支持。
标准网络应用开发说明 TiJOS 支持了大部分java.net中的类,主要包括:
类 | 说明 | 网络功能 | Socket | TCP 客户端套接字 | TCP Client | ServerSocket | TCP 服务端套接字 | TCP Server | DatagramSocket | UDP套接字, 常与DatagramPacket一起使用 | UDP | InetAddress | Internet地址 | DNS | URI | 统一资源标识符 | | TiJOS标准网络应用开发与标准JAVA一致, 具体可参考相关资料, 下面介绍一些典型应用的开发流程。 TCP 客户端 典型的TCP Client开发流程如代码所示:
- <font size="3">//TCP服务器IP及PORT
- String host = "192.168.1.55";
- int port = 8080;
-
- //连接服务器
- Socket client = new Socket(host, port);
-
- //发送数据到服务端
- OutputStream output = client.getOutputStream();
- output.write("Hello, this is client".getBytes());
- output.flush();
-
- //从服务端获取数据
- InputStream input = client.getInputStream();
- byte[] buffer = new byte[1024];
- while (true) {
- int len = -1;
- len = input.read(buffer);
- if(len > 0 ) //有数据收到
- {
- ...
- }
- }
- //关闭客户端
- client.close();</font>
复制代码 TCP 服务端 典型TCP Server 开发流程如下所示:
- <font size="3">//Server Socket
- ServerSocket listener = new ServerSocket(8080);
- System.out.println("local ip = " + listener.getLocalSocketAddress());
-
- //Connected client socket
- Socket socket = null;
-
- //服务端等待客户端连接,默认超时时间: 60 seconds
- socket = listener.accept();
- System.out.println("a client is connected: " + socket.getRemoteSocketAddress());
-
- //发送数据到客户端
- OutputStream out = socket.getOutputStream();
- out.write("Hello, This is the server.".getBytes());
- out.flush();
-
- //读取客户端数据
- InputStream input = socket.getInputStream();
- byte[] buff = new byte[1024];
- while(true)
- {
- int len = 0;
- len = input.read(buff);
- if(len > 0)
- {
- System.out.println("message from client:" + new String(buff, 0, len));
- }
- }
复制代码 UDP 典型的UDP应用如下所示:
- <font size="3">DatagramSocket udpSocket = new DatagramSocket();
- String remote = "192.168.1.55";
- int port = 8080;
-
- //UDP 发送数据
- byte [] msg = ("Hello Server").getBytes();
- DatagramPacket dp = new DatagramPacket(msg, msg.length, InetAddress.getByName(remote), port);
- udpSocket.send(dp);
-
- //UDP 接收数据
- byte [] buffer = new byte[1024];
- while(true)
- {
- dp.setData(buffer);
- dp.setAddress(null);
- //接收数据 默认超时时间10秒
- udpSocket.receive(dp);
-
- String info = new String(dp.getData(), 0, dp.getLength());
- System.out.println("Received: " + info);
- System.out.println("Remote IP:" + dp.getAddress());
- }
复制代码 更多详细介绍请见钛云物联官网:www.tijos.net |