开发问题记录

1.socket获取16进制报文并解析成16进制字符

    public static String byte2String(byte b){
        return String.format("%02x ",b);
    }
    
    public static void main(String[] args) throws Exception {
        byte[] byteArr = new byte[1024];
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < byteArr.length; i++) {
            sb.append(byte2String(byteArr[i]));
        }
    }

2.DatagramPacket解析数据包:

    public static ConcurrentLinkedQueue<byte[]> msgList = new ConcurrentLinkedQueue<>();        
for (; ; ) {
            byte[] buf = new byte[100];
            // 解析数据包
            DatagramPacket packet = new DatagramPacket(buf, buf.length);
            socket.receive(packet);
            byte[] dataArr = new byte[packet.getLength()];
            //获取报文真实数据长度,并将报文放入dataArr
            System.arraycopy(buf,0,dataArr,0,dataArr.length);
            String ip = packet.getAddress().getHostAddress();
            buf = packet.getData();
            String data = new String(buf, 0, packet.getLength());
            logger.info("收到ip为{}发来的消息,字符数据为,{},字符长度为,{}", ip,data,packet.getLength());
            if (dataArr.length>0) {
                msgList.add(dataArr);
            }
        }

3.ftp将连接放回连接池前需要

//传输完成后必须以完成文件传输并检查其返回值以验证下载是否实际上已成功完成。
                    if(ftpClient.completePendingCommand()){
                        //验证成功后的逻辑,获取将连接放回连接池
                    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值