`
weihong01267
  • 浏览: 48435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java io 手写mqtt客户端connect,heartbeat

阅读更多
package test;
//mqtt协议参考http://www.blogjava.net/yongboy/archive/2014/02/09/409630.html
import java.io.*;
import java.net.Socket;

public class Client {
    public static final String IP_ADDR = "localhost";//服务器地址
public static final int PORT = 8088;//服务器端口号

public static void main(String[] args) {
        System.out.println("客户端启动...");
        Socket socket = null;
        try {
            //创建一个流套接字并将其连接到指定主机上的指定端口号
socket = new Socket(IP_ADDR, PORT);

            //读取服务器端数据
DataInputStream input = new DataInputStream(socket.getInputStream());
            //向服务器端发送数据
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
            out.writeByte(0b00010000);//16
out.writeByte(31);//29
out.writeUTF("MQIsdp");
            out.writeByte(4);
            out.writeByte(0);
            out.writeByte(0); //keepalive 1
out.writeByte(10);//keepalive2
            //out.writeByte(17);

out.writeUTF("35-4F-36-25-3E-51");
            out.flush();
            for (int i = 0; i < 10; i++) { // send heartbeat 10 times
out.writeByte(0b11000000);
                out.writeByte(0);
                out.flush();

            }

            int loop = 0;
            do {
                byte ret = input.readByte();
                int rr = ((int) ret);
                String hex = Integer.toHexString(rr);
                System.out.println("服务器端返回过来的是: " + hex);
                loop++;
            } while (true);

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("客户端异常:" + e.getMessage());
        } finally {
            if (socket != null) {
                try {
                    socket.close();
                } catch (IOException e) {
                    System.out.println("客户端 finally 异常:" + e.getMessage());
                }
            }
        }

    }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics