钛极OS之标准网络 TiJOS 支持标准JAVA的TCP, UDP,DNS网络接口, 还提供了网络时间协议NTP, MQTT,COAP等等客户端常用的接口,标准网络应用通过java.net来支持。 标准网络应用开发说明 TiJOS 支持了大部分java.net中的类,主要包括: 类说明网络功能SocketTCP 客户端套接字TCP ClientServerSocketTCP 服务端套接字TCP ServerDatagramSocketUDP套接字, 常与DatagramPacket一起使用UDPInetAddressInternet地址DNSURI统一资源标识符 TiJOS标准网络应用开发与标准JAVA一致, 具体可参考相关资料, 下面介绍一些典型应用的开发流程。 TCP 客户端 典型的TCP Client开发流程如代码所示: <font size="3">//TCP服务器IP及PORTString 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 SocketServerSocket listener = new ServerSocket(8080);System.out.println("local ip = " + listener.getLocalSocketAddress()); //Connected client socketSocket socket = null; //服务端等待客户端连接,默认超时时间: 60 secondssocket = 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