http post协议实现简单的rpc协议,WireShark抓包分析

这篇具有很好参考价值的文章主要介绍了http post协议实现简单的rpc协议,WireShark抓包分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.http 客户端-RPC客户端

import json
import requests

# 定义 RPC 客户端类
class RPCClient:
    def __init__(self, server_url):
        self.server_url = server_url

    def call(self, method, params):
        # 构建 JSON-RPC 请求
        request_data = {
            'method': method,
            'params': params,
            'id': 1
        }
        #json数据转化为网络字节流数据
        json_data = json.dumps(request_data).encode('utf-8')

        # 发送 POST 请求
        response = requests.post(self.server_url, json_data, headers={'Content-type': 'application/json'})

        # 解析响应
        result = response.json()
        if 'error' in result:
            raise Exception(result['error'])
        return result['result']

# 创建 RPC 客户端实例
client = RPCClient('http://192.168.1.9:8000')

# 调用远程方法
result = client.call('add', [3, 5])
print("Result:", result)

1.http 服务端-RPC服务端

import json
from http.server import BaseHTTPRequestHandler, HTTPServer

# 自定义处理程序类
class RPCHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        # 解析接收到的 JSON 数据
        content_length = int(self.headers['Content-Length'])
        json_data = self.rfile.read(content_length).decode('utf-8')
        print("-------json_data:{}".format(json_data))
        data = json.loads(json_data)
        print("-------data:{}".format(data))
        # 处理 RPC 请求
        result = self.process_request(data)

        # 构建响应
        self.send_response(200)
        self.send_header('Content-type', 'application/json')
        self.end_headers()
        # 将python对象转为json字符串,encode用于将字符串转换为字节流b开头,默认用utf-8编码
        print(json.dumps(result).encode('utf-8'))
        self.wfile.write(json.dumps(result).encode('utf-8'))

    def process_request(self, data):
        # 在这里处理 RPC 请求
        # 根据请求内容调用相应的函数或方法
        # 返回结果
        if 'method' in data:
            method = data['method']
            if method == 'add':
                if 'params' in data and len(data['params']) == 2:
                    a, b = data['params']
                    result = a + b
                    return {'result': result}
        return {'error': 'Invalid request'}

# 启动 RPC 服务器
def run_server():
    port = 8000
    server_address = ('192.168.1.9', port)
    httpd = HTTPServer(server_address, RPCHandler)
    httpd.serve_forever()

if __name__ == '__main__':
    run_server()

post /synctl http/1.1 , json (application/json)抓包分析,项目,http,rpc,wireshark

3.WireShark抓包分析

post /synctl http/1.1 , json (application/json)抓包分析,项目,http,rpc,wireshark

3.1客户端到服务端的HTTP/JSON报文

post /synctl http/1.1 , json (application/json)抓包分析,项目,http,rpc,wireshark

3.2服务端到客户端的HTTP/JSON报文

post /synctl http/1.1 , json (application/json)抓包分析,项目,http,rpc,wireshark文章来源地址https://www.toymoban.com/news/detail-834461.html

到了这里,关于http post协议实现简单的rpc协议,WireShark抓包分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Wireshark数据抓包分析之传输层协议(TCP协议)

    Wireshark数据抓包分析之传输层协议(TCP协议)

            通过使用wireshark对TCP协议的数据包的抓取分析TCP协议的具体内容         1.需要了解TCP协议的三次握手过程         2.需要了解TCP协议的四次挥手的过程 part1:3次握手和4次挥手的数据包的获取 1.通过使用TCP测试工具在机器一中创建服务器,并且进行相应的配置,然

    2024年02月11日
    浏览(14)
  • 用Wireshark抓包分析协议 计算机网络

    用Wireshark抓包分析协议 计算机网络

    此篇博客记录使用Wireshark抓包分析协议。 目录 一、DNS 二、分析TCP握手过程 三、TLS报文 四、HTTP协议 五、SMTP 六、ARP 七、RTP 八、RTMP        DNS是域名系统,Domain Name System的缩写,是基于TCP/IP的一个服务。DNS是将主机名到IP地址转换的目录服务。DNS是:①一个由分层的DNS服务

    2024年02月09日
    浏览(14)
  • 网络安全:WireShark 抓包及常用协议分析

    网络安全:WireShark 抓包及常用协议分析

    打开kali终端进入wireshark 进入到wireshark点击选项 勾选选项混杂模式开始抓包 进入终端打开火狐,打开百度进行抓包 这时我们抓到了很多类型的数据包 上方的过滤器可以指定类型数据宝或者指定源地址目标地址等等,例如现在抓取arp协议的数据包 我们ping一个地址 我们可以用

    2023年04月08日
    浏览(13)
  • Wireshark数据抓包分析之ARP协议

    Wireshark数据抓包分析之ARP协议

            通过wireshark的数据抓包了解这个ARP协议的具体内容         1.Address Resolution Protocol协议,就是通过目标IP的值,获取到目标的mac地址的一个协议         2.ARP协议的详细工作过程,下面描述得非常清晰:          3.关于上面提到的ARP缓存表这个东西: (1)首先,这里

    2024年02月11日
    浏览(10)
  • Wireshark数据抓包分析之互联网协议(IP协议)

    Wireshark数据抓包分析之互联网协议(IP协议)

            通过wireshark抓包分析IP协议的具体内容         1.IP地址存在的意义,就是为了弥补mac地址的不足,用于区分不同的网络         2.还有一些ip协议、ip数据包这些东西 part1:数据包的抓取 1.抓取发往www.baidu.com的ip数据包,略,因为虚拟机无法联网,这里桌面有现成的

    2024年02月11日
    浏览(17)
  • Wireshark抓包分析(ARP TCP DNS HTTP)

    Wireshark抓包分析(ARP TCP DNS HTTP)

    一、ARP 二、DNS 三、TCP TCP的总过程: ​TCP三次握手:  TCP四次挥手:  四、HTTP 1.ARP (Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。 我们要抓ARP 同网段内的访问网关的情况。 先cmd执行 arp -a 命令,从ARP表中查看本网段内有哪些主机 然后 arp -d 清空AR

    2024年02月09日
    浏览(9)
  • 使用WireShark抓包分析TCP_IP协议

    使用WireShark抓包分析TCP_IP协议

    TCP/IP 协议 是一组用于互联网通信的协议。它由两个主要协议组成:传输控制协议( TCP )和互联网协议( IP )。TCP/IP协议是互联网上最常用的协议之一,它使得不同类型的计算机和网络设备能够相互通信。 TCP负责将数据分割成数据包,并确保它们在网络上的传输。 IP负责将

    2024年02月09日
    浏览(15)
  • 玩转网络抓包利器:Wireshark常用协议分析讲解

    玩转网络抓包利器:Wireshark常用协议分析讲解

    Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。关于该工具的安装请参考之前的文章:地址 ,接下来开始正式讲解其实用技巧。 目

    2024年02月22日
    浏览(12)
  • 实验:Wireshark 抓包软件的使用及MAC协议分析

    实验:Wireshark 抓包软件的使用及MAC协议分析

    1、理解抓包软件的工作原理; 2、掌握Wireshark软件的安装和使用方法。 3、掌握MAC协议分析的技术与方法 1、安装和运行Wireshark软件; 2、使用Wireshark软件抓取网络报文; 3、选取两个以上的以太网报文进行深入对比分析。 硬件:连接互联网的PC机; 软件:Wireshark 3.6.2。 1、安

    2024年02月01日
    浏览(11)
  • 实验十四:Wireshark数据抓包分析之ARP协议

    实验十四:Wireshark数据抓包分析之ARP协议

    实验十四:Wireshark数据抓包分析之ARP协议 目录 一、实验目的及要求 二、实验原理 1、什么是ARP  2、ARP工作流程 3、ARP缓存表 三、实验环境 四、实验步骤及内容 实验步骤一 1、使用netsh绑定IP和MAC地址 2、使用ARP进行相关的增加,删除,查看等操作 实验步骤二 实验步骤三 1、

    2024年02月02日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包