当前位置: 首页 > news >正文

金融产品做网站推广全自动在线网页制作

金融产品做网站推广,全自动在线网页制作,遵义网站开发,大连中山网站建设本章内容其实没有多大难度,主要考察大家的细心程度.计算数据长度然后截取相应字节数组并按照协议进行解码,编码则反之。 1.基础消息的编解码 Override public BasicMessage decode(byte[] bytes) {int dataLength ByteUtil.bytesToInt(ByteUtil.extra…

本章内容其实没有多大难度,主要考察大家的细心程度.计算数据长度然后截取相应字节数组并按照协议进行解码,编码则反之。

1.基础消息的编解码

@Override
public BasicMessage decode(byte[] bytes) {int dataLength = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 2, 4));if (dataLength != bytes.length) {throw new IllegalArgumentException("The data length is incorrect.");}return new BasicMessage().setRequest(RequestType.valueOfId(ByteUtil.extract(bytes, 0, 1)[0])).setResponse(ResponseType.valueOfId(ByteUtil.extract(bytes, 1, 1)[0])).setDataLength(dataLength).setPayload(ByteUtil.extract(bytes, 6, dataLength - 1 - 1 - 4 - 8)).setTimestamp(ByteUtil.bytesToLong(ByteUtil.extract(bytes, dataLength - 8, 8)));
}@Override
public byte[] encode() {byte[] request = new byte[]{this.getRequest().getId()};byte[] response = new byte[]{this.getResponse().getId()};byte[] payload = (null == this.getPayload()) ? new byte[]{} : this.getPayload();byte[] timestamp = ByteUtil.longToBytes(this.getTimestamp(), 8);byte[] dataLength = ByteUtil.intToBytes(request.length + response.length + 4 + payload.length + timestamp.length, 4);return ByteUtil.concat(request,response,dataLength,payload,timestamp);
}

2.登入、登出消息的编解码

@Override
public Login decode(byte[] bytes) {return new Login().setLoginId(ByteUtil.bytesToShort(ByteUtil.extract(bytes, 0, 2))).setLoginInfo(new String(ByteUtil.extract(bytes, 2, bytes.length - 2), StandardCharsets.UTF_8));
}@Override
public byte[] encode() {return ByteUtil.concat(ByteUtil.shortToBytes(this.getLoginId(), 2),this.getLoginInfo().getBytes(StandardCharsets.UTF_8));
}
@Override
public Logout decode(byte[] bytes) {return new Logout().setLogoutId(ByteUtil.bytesToShort(ByteUtil.extract(bytes, 0, 2)));
}@Override
public byte[] encode() {return ByteUtil.concat(ByteUtil.shortToBytes(this.getLogoutId(), 2));
}

3.上行、下行消息的编解码

@Override
public Upstream decode(byte[] bytes) {return new Upstream().setStatus(StatusType.valueOfId(ByteUtil.extract(bytes, 0, 1)[0])).setLongitude(ByteUtil.bytesToInt(ByteUtil.extract(bytes, 1, 4))).setLatitude(ByteUtil.bytesToInt(ByteUtil.extract(bytes, 5, 4)));
}@Override
public byte[] encode() {return ByteUtil.concat(new byte[]{this.getStatus().getId()},ByteUtil.intToBytes(this.getLongitude(), 4),ByteUtil.intToBytes(this.getLatitude(), 4));
}
@Override
public Downstream decode(byte[] bytes) {return new Downstream().setCommand(CommandType.valueOfId(ByteUtil.extract(bytes, 0, 1)[0])).setStatus(StatusType.valueOfId(ByteUtil.extract(bytes, 1, 1)[0]));
}@Override
public byte[] encode() {return ByteUtil.concat(new byte[]{this.getCommand().getId()},new byte[]{this.getStatus().getId()});
}

4.文件传输、文件下载的编解码

@Override
public FileTransfer decode(byte[] bytes) {int nameLength = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 0, 1));String filename = new String(ByteUtil.extract(bytes, 1, nameLength), StandardCharsets.UTF_8);long id = ByteUtil.bytesToLong(ByteUtil.extract(bytes, 1 + nameLength, 8));int total = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 1 + nameLength + 8, 4));int index = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 1 + nameLength + 8 + 4, 4));int dataLength = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 1 + nameLength + 8 + 4 + 4, 4));byte[] content = ByteUtil.extract(bytes, 1 + nameLength + 8 + 4 + 4 + 4, dataLength);int crc = ByteUtil.crc(content, content.length);return new FileTransfer().setNameLength(nameLength).setFilename(filename).setId(id).setTotal(total).setIndex(index).setDataLength(dataLength).setContent(content).setCrc(crc);
}@Override
public byte[] encode() {byte[] filename = this.getFilename().getBytes(StandardCharsets.UTF_8);byte[] nameLength = ByteUtil.intToBytes(filename.length, 1);byte[] id = ByteUtil.longToBytes(this.getId(), 8);byte[] total = ByteUtil.intToBytes(this.getTotal(), 4);byte[] index = ByteUtil.intToBytes(this.getIndex(), 4);byte[] content = this.getContent();byte[] dataLength = ByteUtil.intToBytes(content.length, 4);byte[] crc = ByteUtil.intToBytes(ByteUtil.crc(content, content.length), 1);return ByteUtil.concat(nameLength,filename,id,total,index,dataLength,content,crc);
}
@Override
public FileDownload decode(byte[] bytes) {int nameLength = ByteUtil.bytesToInt(ByteUtil.extract(bytes, 0, 1));String filename = new String(ByteUtil.extract(bytes, 1, nameLength), StandardCharsets.UTF_8);return new FileDownload().setNameLength(nameLength).setFilename(filename);
}@Override
public byte[] encode() {byte[] filename = this.getFilename().getBytes(StandardCharsets.UTF_8);byte[] nameLength = ByteUtil.intToBytes(filename.length, 1);return ByteUtil.concat(nameLength,filename);
}
http://www.khdw.cn/news/69260.html

相关文章:

  • 昆山靠谱的网站建设公司搜狗seo软件
  • 有了域名如何建设网站谷歌优化的最佳方案
  • 网站推广淘宝联盟怎么做百度免费发布信息平台
  • 怎么做像表白墙的网站促销活动推广方案
  • c语言也能干大事网站开发lpl赛区战绩
  • 易企网站建设百度应用商店app下载安装
  • 福田专业网站建设公司win7优化大师下载
  • 手机网站开发报价单国际最新十大新闻事件
  • 建立一个属于自己的网站湖南广告优化
  • 盐城网站制作品牌策划运营公司
  • 教育类网站怎么做优化seo网站优化详解
  • 玉林网站建设公司网推放单平台
  • 深圳网站开发建设培训机构网站制作河南
  • 网站建设mus18合肥seo快排扣费
  • 淮安网站建设亚马逊alexa
  • 东昌府聊城做网站公司环球网疫情最新动态
  • wordpress如何弄添加框整站优化全网营销
  • 中国做视频网站有哪些内容顾问
  • 2008 iis配置网站nba最新赛程
  • 中宁网站建设bing搜索 国内版
  • 网站优化推广软件网络营销策划书范文
  • 百度站长工具网址永久开源的免费建站系统
  • .net 快速网站开发软文写作兼职
  • 火车头web发布到网站服务营销的七个要素
  • 岳麓做网站的公司百度收录情况
  • 各大中文网站搜索引擎调价工具哪个好
  • 建设银行官方网站首页公司机构线上网络推广怎么做
  • 文章收录网站seo优化啥意思
  • wordpress 图片加载很慢网络优化器
  • wordpress能做流量站吗seo行业岗位有哪些