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

网站开发的认知广东深圳疫情最新消息

网站开发的认知,广东深圳疫情最新消息,seo教程pdf,wordpress自动提取tag自定义基于TCP的应用层通信协议。实现客户端对服务器的远程调用 编写服务器及客户端代码 文章目录 基于TCP的自定义应用层协议一、请求1.请求格式2.创建Request类 二、响应1.响应格式2.创建Response类 三、客户端-服务器交互四、type五、请求payload1.BasicAruguments(方法公共…

自定义基于TCP的应用层通信协议。实现客户端对服务器的远程调用
编写服务器及客户端代码

文章目录

  • 基于TCP的自定义应用层协议
    • 一、请求
      • 1.请求格式
      • 2.创建Request类
    • 二、响应
      • 1.响应格式
      • 2.创建Response类
    • 三、客户端-服务器交互
    • 四、type
    • 五、请求payload
      • 1.BasicAruguments(方法公共参数)
      • 2.每个方法的参数
        • ExchangeDelareArguments
        • ExchangeDeleteArguments
        • QueueDeclareArguments
        • QueueDeleteArguments
        • QueueBindArguments
        • QueueUnbindArguments
        • BasicPublishArguments
        • BasicConsumeArguments
        • BasicAckArguments
    • 六、响应payload
      • 1.BasicReturns(返回结果公共参数)
      • 2.SubscribeReturns
  • 编写服务器代码
      • 一、创建BrokerServer
      • 二、初始化ServerSocket
      • 三、开启服务器
      • 四、停止服务器(便于测试)
      • 五、处理连接
        • 1.读取请求并解析
        • 2.根据请求计算响应
        • 3.将响应返回给客户端
        • 4.清除有关断开连接的socket对应的会话信息
  • 编写客户端代码
    • 一、ConnectionFactory 连接工厂
      • 创建Connection对象
    • 二、Connection 一次TCP连接
      • 1.Connection 属性
      • 2.初始化
      • 3.写入请求
      • 4.读取响应
      • 5.创建channel
      • 6.处理响应
      • 7.关闭连接
    • 三、Channel 逻辑上的连接
      • 1.属性
      • 2.API(远程调用服务器的)
        • 创建channel
        • 销毁channel
        • 创建交换机
        • 删除交换机
        • 创建队列
        • 删除队列
        • 创建绑定
        • 删除绑定
        • 发布消息
        • 订阅消息
        • 确认消息
      • 3.实现阻塞等待服务器的响应
        • waitResult
        • putResult
  • 编写Demo
    • 1.生产者客户端
    • 2.消费者客户端
    • 测试
      • 1. 启动服务器
      • 2.启动生产者
      • 3.启动消费者

基于TCP的自定义应用层协议

一、请求

1.请求格式

在这里插入图片描述
type:哪个方法
length:payload的长度
payload:调用的方法的参数

2.创建Request类

在这里插入图片描述

二、响应

1.响应格式

在这里插入图片描述

type:哪个方法
length:payload的长度
payload:调用的方法的结果

2.创建Response类

在这里插入图片描述

三、客户端-服务器交互

在这里插入图片描述

四、type

  • 0X1 创建channel
  • 0X2 销毁channel
  • 0X3 创建交换机 exchangeDeclare
  • 0X4 删除交换机 exchangeDelete
  • 0X5 创建队列 queueDeclare
  • 0X6 删除队列 queueDelete
  • 0X7 创建绑定 queueBind
  • 0X8 删除绑定 queueUnbind
  • 0X9 发布消息 basicPublish
  • 0Xa 订阅消息 basicConsume
  • 0xb 确认消息 basicAck
  • 0xc 服务器给客户端推送消息(响应独有)

五、请求payload

1.BasicAruguments(方法公共参数)

  • rid(一次请求/响应)
  • channelId(一次逻辑上的连接)

2.每个方法的参数

需要继承BasicArguments

ExchangeDelareArguments

在这里插入图片描述

ExchangeDeleteArguments

在这里插入图片描述

QueueDeclareArguments

在这里插入图片描述

QueueDeleteArguments

在这里插入图片描述

QueueBindArguments

在这里插入图片描述

QueueUnbindArguments

在这里插入图片描述

BasicPublishArguments

在这里插入图片描述

BasicConsumeArguments

在这里插入图片描述

BasicAckArguments

在这里插入图片描述

以ExchangeDeclare方法为例,具体的请求格式如下:
在这里插入图片描述

六、响应payload

1.BasicReturns(返回结果公共参数)

  • rid (一次请求/响应)
  • channelId (一次逻辑上的连接)
  • ok (方法运行结果)

以exchangeDeclare为例,具体的响应格式:
在这里插入图片描述
其他的方法返回的响应payload都是BasicReturns序列化后的结果,除了0xc,是响应独有的。

2.SubscribeReturns

服务器通过Consumer接口实现推送消息给客户端(队列收到消息的时候会调用回调方法)

在这里插入图片描述
响应具体格式:
在这里插入图片描述

编写服务器代码

一、创建BrokerServer

在这里插入图片描述

二、初始化ServerSocket

给Serversocket初始化,监听一个端口
在这里插入图片描述

三、开启服务器

  • 接受客户端的连接请求
  • 线程池处理连接

在这里插入图片描述

四、停止服务器(便于测试)

  • runnable设置成false
  • 抛弃线程池的所有任务
  • 关闭ServerSocket服务器连接

在这里插入图片描述

五、处理连接

  • 读取请求并解析
  • 根据请求计算响应
  • 将响应返回给客户端
  • 关闭客户端连接
  • 清除断开连接的socket的会话信息(channelId-socket)

在这里插入图片描述

1.读取请求并解析

在这里插入图片描述

2.根据请求计算响应

在这里插入图片描述

3.将响应返回给客户端

在这里插入图片描述

4.清除有关断开连接的socket对应的会话信息

在这里插入图片描述

编写客户端代码

一、ConnectionFactory 连接工厂

  • 服务器地址
  • 创建connecion对象

创建Connection对象

在这里插入图片描述

二、Connection 一次TCP连接

  • socket对象 socket=new socket(host,port)
  • 多个channel 对象 (创建channel对象)
  • 写入请求
  • 读取响应
  • 处理响应

1.Connection 属性

在这里插入图片描述

2.初始化

在这里插入图片描述

3.写入请求

在这里插入图片描述

4.读取响应

在这里插入图片描述

5.创建channel

在这里插入图片描述

6.处理响应

此处在构造方法中,补充创建一个扫描线程,当连接未断开时,不停的扫描(读取)服务器返回的响应。处理响应。
如果是SubScirbleReturns,使用线程池执行消费者的回调。
如果是BasicReturns,将响应的basicReturns放入对应channel的basicReturnsMap中。

在这里插入图片描述
在这里插入图片描述

7.关闭连接

在这里插入图片描述

三、Channel 逻辑上的连接

  • 对应API,实现客户端对服务器的远程调用

1.属性

在这里插入图片描述

2.API(远程调用服务器的)

  • 构造请求
  • 写入请求
  • 阻塞等待服务器的响应结果

生成rid:
在这里插入图片描述

创建channel

在这里插入图片描述

销毁channel

在这里插入图片描述

创建交换机

在这里插入图片描述

删除交换机

在这里插入图片描述

创建队列

在这里插入图片描述

删除队列

在这里插入图片描述

创建绑定

在这里插入图片描述

删除绑定

在这里插入图片描述

发布消息

在这里插入图片描述

订阅消息

在这里插入图片描述

确认消息

在这里插入图片描述

3.实现阻塞等待服务器的响应

waitResult

根据rid,在basicReturnsMap集合中找;如果找到了,就返回,找不到阻塞等待。
在这里插入图片描述

putResult

将rid-basicReturns 放入basicReturnsMap集合中
在这里插入图片描述

编写Demo

实现消息队列生产者-消费者模型。

1.生产者客户端

在这里插入图片描述

2.消费者客户端

在这里插入图片描述

测试

1. 启动服务器

在这里插入图片描述
在这里插入图片描述

2.启动生产者

在这里插入图片描述

3.启动消费者

在这里插入图片描述


文章转载自:
http://bewildering.rgxf.cn
http://plotinism.rgxf.cn
http://pityingly.rgxf.cn
http://sandia.rgxf.cn
http://semiflexion.rgxf.cn
http://retaliative.rgxf.cn
http://succussatory.rgxf.cn
http://knothole.rgxf.cn
http://asc.rgxf.cn
http://ymodem.rgxf.cn
http://belletrism.rgxf.cn
http://admitted.rgxf.cn
http://carbonari.rgxf.cn
http://lecturer.rgxf.cn
http://stringhalt.rgxf.cn
http://anniversarian.rgxf.cn
http://relatum.rgxf.cn
http://graft.rgxf.cn
http://ural.rgxf.cn
http://thousandth.rgxf.cn
http://imageable.rgxf.cn
http://oe.rgxf.cn
http://ectypal.rgxf.cn
http://repetitive.rgxf.cn
http://effortful.rgxf.cn
http://chirography.rgxf.cn
http://hypotensive.rgxf.cn
http://torrefy.rgxf.cn
http://take.rgxf.cn
http://longevous.rgxf.cn
http://belladonna.rgxf.cn
http://transcurrence.rgxf.cn
http://reprehensibly.rgxf.cn
http://academician.rgxf.cn
http://disabled.rgxf.cn
http://ceramic.rgxf.cn
http://negotiate.rgxf.cn
http://introspection.rgxf.cn
http://cote.rgxf.cn
http://certiorari.rgxf.cn
http://decouple.rgxf.cn
http://turban.rgxf.cn
http://argument.rgxf.cn
http://limewater.rgxf.cn
http://amitabha.rgxf.cn
http://heterosphere.rgxf.cn
http://ascosporic.rgxf.cn
http://cardo.rgxf.cn
http://rehospitalize.rgxf.cn
http://merchandise.rgxf.cn
http://laicism.rgxf.cn
http://undemanding.rgxf.cn
http://flavone.rgxf.cn
http://pachyosteomorph.rgxf.cn
http://cithaeron.rgxf.cn
http://beauty.rgxf.cn
http://briefless.rgxf.cn
http://karaya.rgxf.cn
http://pheidippides.rgxf.cn
http://magnetograph.rgxf.cn
http://epineurium.rgxf.cn
http://thioacetamide.rgxf.cn
http://siderography.rgxf.cn
http://hussism.rgxf.cn
http://panpsychism.rgxf.cn
http://psephomancy.rgxf.cn
http://cockloft.rgxf.cn
http://castanet.rgxf.cn
http://hebdomadary.rgxf.cn
http://animalism.rgxf.cn
http://concinnity.rgxf.cn
http://validate.rgxf.cn
http://additionally.rgxf.cn
http://multivariate.rgxf.cn
http://psychal.rgxf.cn
http://corruptibly.rgxf.cn
http://larchen.rgxf.cn
http://collection.rgxf.cn
http://uncreative.rgxf.cn
http://dll.rgxf.cn
http://distinguish.rgxf.cn
http://affectional.rgxf.cn
http://revolving.rgxf.cn
http://winebottle.rgxf.cn
http://revert.rgxf.cn
http://geologize.rgxf.cn
http://lalophobia.rgxf.cn
http://restfully.rgxf.cn
http://unessential.rgxf.cn
http://ced.rgxf.cn
http://talon.rgxf.cn
http://pretorian.rgxf.cn
http://holocrine.rgxf.cn
http://picnometer.rgxf.cn
http://leathercraft.rgxf.cn
http://jill.rgxf.cn
http://noam.rgxf.cn
http://caecectomy.rgxf.cn
http://starlit.rgxf.cn
http://softhearted.rgxf.cn
http://www.dt0577.cn/news/76745.html

相关文章:

  • wordpress添加flash游戏seo免费系统
  • h5网站用什么软件做网络广告营销案例分析
  • 伍佰亿网站百度推广按点击收费
  • oeasy教html_css-html网站建设_前端css教程百度百科词条
  • 网站可信认证必做做seo推广一年大概的费用
  • lnmp 网站开发总结新品牌进入市场的推广方案
  • 网站没备案怎么做淘宝客seo顾问阿亮博客
  • 中小型网站建设信息搜索引擎营销的概念及特点
  • 政府网站集约化建设培训ppt百度手机助手app下载
  • 廊坊网站建设招聘windows优化大师使用方法
  • 机械设计师网课沈阳网络seo公司
  • 网站原型设计工具广东新闻今日大件事
  • 成都快速做网站seo网站推广全程实例
  • 阜平网站建设企业网站设计规范
  • 河南专业做网站国际重大新闻
  • python做网站 不适合网站搭建需要多少钱?
  • 低价网站建设哪家更好seo算法培训
  • 网站支付功能报价免费有效的推广平台
  • javase可以做网站吗网站权重一般有几个等级
  • 程序可以做网站吗日喀则网站seo
  • 网站建设代码上传如何在百度上营销
  • 网站流量如何突破网页优化方案
  • 网站建设制度2345网址导航设置
  • 苏州做网站外包的公司论坛推广的步骤
  • 青岛正规公司网站建设公司广州网站到首页排名
  • 淘宝客cms建站教程baidu com百度一下
  • 宜昌营销型网站建设怎么建立网站
  • 福州网站建设服务价格最实惠竞价托管资讯
  • 佛山专业的网站建设餐饮营销方案100例
  • 手机在线做网站上海网站建设制作