设为首页 加入收藏

TOP

TCP协议调试工具TcpEngine V1.3.0使用教程(一)
2023-07-23 13:26:07 】 浏览:53
Tags:TCP TcpEngine V1.3.0

简介

??这里说的TCP协议调试定义是在开发长连接TCP协议应用时,为了验证代码流程或查找bug,需要与对端交互数据过来,当需要时可以暂停发送;单条发送;跳过发送;正常发送;发送时修改数据等。

??TcpEngine提供的解决方案是:我们前端应用和后端应用网络通信时,先经过TcpEngine转发,在转发过程中,可以对网络数据暂停转发(暂停);单条转发(单步);正常转发(运行);转发前编辑数据或转发手工制造的数据(手工发送)等操作,解决我们在开发TCP协议应用时碰到的下列几种情况。

??一、前端小组和后端小组协商后协议格式后,就分别开发新功能,在开发过程中需要对端小组发送网络数据过来触发代码执行,以验证代码流程是否正确。但是对端小组也正在开发,功能不完善也不能给你发数据,此时只能盲写代码。另一种情况是我们已经写完代码,需要对端小组发送数据过来,触发代码以验证流程是否正确,但对端功能不完善也不能给你发数据,只能干等待?此时可以使用TcpEngine模拟对端发送数据给自己,触发代码执行。

??二、新功能已经集成提交到测试阶段,在测试过程中发生bug,此时需要对端发送数据过来定位错误,但由于对端也在解决bug没时间或不能重现错误数据,此时无法通过网络数据触代码流程来查找bug。此时也可以使用TcpEngine摸拟对端给数据给自己。

??三、应用已经交付给客户端,客户使用过程中发生网络数据错误,需要保存现场数据,解析以重现错误现场。此时我们可以使用TcpEngine开启代理服务器,让前端应用和后端应用的数据通信经过TcpEngine转发,TcpEngine转发数据同时解析和保存现场数据,再次使用TcpEngine打开解析,以重现网络的网络数据。

??新版本放弃了WFP内核获取网络数据方式,改用代理服务器获取网络,带来易用性很大的提升,新增了TCP协议调试运行模式,新增的功能有:暂停;单步;跳过;运行等新功能。

初识TcpEngine

TcpEngine架构图

??TcpEngine使用代理服务器方式截取网络数据,前端需要通过代理客户端把数据发送给TcpEngine的代理服务器模块,TcpEngine收到数据进行解析并显示,然后把解析后的数据再次封装转发给后端,数据流程图如下图所示。

??下面我们以一个最简单的应用来演示TcpEngine怎么使用,这个应用非常简单,前端发送一条数据给后端,后端就响应一条数据给前端。前端和后端都是用java1.8开发,后端已经部署到demo.tcpengine.cn 服务器,运行前端需要已配置java环境,代码已放到https://gitee.com/www.csdn.net/tcp-engine-test。

把前端应用加入到代理客户端

??一、我们以ProxyCap来做为代理客户端,安装ProxyCap成功后会通知区域显示ProxyCap图标,如下图所示。

??二、右键ProxyCap图标弹出配置菜单,点击Configuration按钮,如下图所示。

??三、点击右边导航树的Proxies,再点击New Proxy Server小图标,新建一条指向代理服务器的配置信息,如下图所示。

??四、点击导航树的Rules,再点击Quick Add Rule小图标,把我们的前端应用exe文件加入到ProxyCap,如下图所示。

查找前端应用exe文件的小技巧

??一、打开任务管理器。

??二、再启动我们的前端应用,这时前端应用就新增到任务管理器应用列表,如下图所示。

??三、鼠标右键我们的应用,点击“打开文件所在的位置(O)”,就可定位到我们应用exe文件的位置,如下图所示。

??如下图所示,到此我们成功的把前端应用加入到了ProxyCap代理客户端,当我们再启动前端应用时,前端应用的所有TCP网络数据都由ProxyCap转发给代理服务器,再由代理服务器转发数据给后端应用。

启动TcpEngine代理服务器

??启动TcpEngine,初始的主界面如下图所示。

??代理服务器启动成功如下图所示,点击“退出”仅隐藏窗口,对代理服务器运行状态没有影响,只有TcpEngine退出后,代理服务器才停止运行。

??如果我们启动失败,弹出下图所示异常对话框,那么是因为系统没有安装Visual C++ 14 Runtime Libraries (C++运行支持库),到微软件官网或这里https://tcp-engine.oss-cn-shenzhen.aliyuncs.com/vc_redist.x64.exe下载并安装就可以解决。

配置截取网络数据

??如下图所示,点击主窗口的新建按钮。

??新建一个空的解析窗口,如下图所示。

??点击“开始”,弹出网络配置对话框,填入后端应用的网络地址和端口,点击“接收不解析”按钮,把网络配置加入代理服务器的数据截取列表,如下图所示。

??解析主界面开始监听网络数据如下图所示。

截取网络数据

??启动TcpEngineClient,下载地址:http://www.tcpengine.cn/tcp_engine/down_list.html,下载TcpEngine1.3.0.zip到本地,如下图所示。

??解压后在TcpEngine1.3.0\demo\TcpEngineClient目标下有两个文件startupClient.bat;TcpEngineClient.jar,双击startupClient.bat(注意,运行前本机必须配置好java运行环境,本示例是在java1.8下开发的),示例主界面如下图所示。

??一、点击“连接”;二、点击“发送1000”,发送一条TCP协议到后端并从后端接收一条TCP,如下图所示。

??再查看TcpEngine界面,显示TcpEngine已截取到TcpEngine协议数据,如下图所示。

解析网络数据?

??本示例演示TCP协议格式如下图所示,消息体长度就第二个int型消息体长度决定。

??对应的解析规则如下所示。

int32 id;

int32 len;

if(0 < len)

{

byte[len] body; // 消息体

}

??来自前端id=1000消息的消息体如下图所示。

??

??对应的消息体的解析规则如下所示。

if(1000 == id) {

int32 loginId = split(body);

string[len - 4] = split(body);

}

??完整的解析规则如下所示。

set endian = big;

set encoding = utf-8;

int32 id;

int32 len;

if(0 < len)

{

byte[len] body; // 消息体

if(1000 == id)

 {

int32 loginId = split(body);

string[len - 4] = split(body);

}

}

??一、点击“停止”;二、输入解析规则到前端解析规则窗口;三、点击刷新,四

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【操作系统】内核态和用户态 下一篇【经验分享】最新Microsoft Edge ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目