WinSocket脚本编写实例与详解

我们知道Winsocket脚本与Web(HTML)脚本不一样,WEB(HTML)脚本主要采用HTML协议进行模拟,根据开发人员提供的接口编写脚本,而Winsocket协议主要根据服务器与客户端采用的内部通讯协议(内部通讯协议,我们在这里讲的是自定义的通讯协议)编写脚本,所以我们需要用到的工具有网络抓包工具Wireshark以及了解内部通讯协议的内容与作用,我们还可以通过服务器与客户端通讯的日志查看(linux下我们可以通过tail -f /var/log/tomcat...查看日志)。好了,我们开始行动吧!

第一步当然是新建winsocket协议:

在编写脚本之前我要补充几个知识点:

1、网络字节序和主机字节序http://blog.csdn.net/houwei544/article/details/8592996

转换方式:

2、8个字节的16进制(以x头):消息类型4个字节+消息体内容长度4个字节,进制类型一般由开发人员定义

3、C语言中的转义字符“\”用来输入特殊字符,如\“

第二步编写脚本,参考文献http://www.ltesting.net/ceshi/ceshijishu/rjcsgj/mercury/loadrunner/2013/0106/205871.html

四部曲:

首先我们要创建socket,如lrs_create_socket("socket1", "TCP", "LocalHost=172.16.0.2:1202","RemoteHost=172.16.255.254:6002",LrsLastArg);

然后我们可以发送数据和接受数据,如 lrs_send("socket1", "buf1001", LrsLastArg); lrs_receive("socket1", "buf2001", LrsLastArg);

其次我们根据抓包的数据或者服务器与客户端通讯日志(可由开发人员提供内部通讯协议说明书)编写data数据文件:

;WSRData 2 1

send buf1001 79
"\xe9\x03\x00\x00\x47\x00\x00\x00"//8个字节的16进制:消息类型1001+消息体内容长度71个字节
"B0-51-8E-08-74-93;172.16.0.2;empty;0;0;A5F5BE704C7447E68E7F8D5F810C0C31"//消息体内容,长度为71个字节
 recv buf2001 17
"\xd1\x07\x00\x00\x09\x00\x00\x00"
"SUCCESS;1"

-1

抓包结果:

我们知道十进制1001协议类型转换为16进制等于3e9,消息体内容长度为71转换为16进制等于47

然后我们把3e9转换为网络字节序是e9030000,把47转换为网络字节序是47000000(补0),所以通过抓包可以看到上面的结果。

服务器与客户端通讯日志:

最后我们关闭socket,如lrs_close_socket("socket1");

时间: 2024-08-29 14:01:36

WinSocket脚本编写实例与详解的相关文章

PHP截取字符串函数substr()函数实例用法详解

在PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符.PHP对于字符串截取可以使用PHP预定义函数substr()函数来实现.下面就来介绍一下substr()函数的语法及其应用. substr()函数语法格式如下:大理石平台厂家 1 substr(string, start, length); substr()函数参数说明如下: 参 数 说 明 string 指定字符串对象 start 指定开始截取字符串的位置.如果参数start为负数,则从字符串的末尾开始截取 length 可选

(转)Java经典设计模式(3):十一种行为型模式(附实例和详解)

原文出处: 小宝鸽 Java经典设计模式共有21中,分为三大类:创建型模式(5种).结构型模式(7种)和行为型模式(11种). 本文主要讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:Java经典设计模式之五大创建型模式(附实例和详解).Java经典设计模式之七大结构型模式(附实例和详解). 行为型模式细分为如下11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 接下来对11种行为型模式逐个进行介

(转)Java经典设计模式(2):七大结构型模式(附实例和详解)

原文出处: 小宝鸽 总体来说设计模式分为三大类:创建型模式.结构型模式和行为型模式. 博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则.设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章:Java经典设计模式之五大创建模式(附实例和详解). 接下来我们看看结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中适配器模式主要分为三类:类的适配器模式.对象的适配器模式.接口的适配器模式.其中的对象的适配器

Java经典设计模式之七大结构型模式(附实例和详解)

博主在大三的时候有上过设计模式这一门课,但是当时很多都基本没有听懂,重点是也没有细听,因为觉得没什么卵用,硬是要搞那么复杂干嘛.因此设计模式建议工作半年以上的猿友阅读起来才会理解的比较深刻.当然,你没事做看看也是没有坏处的. 总体来说设计模式分为三大类:创建型模式.结构型模式和行为型模式. 博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则.设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章:Java经典设计模式之五大创建模式(附实例和详解).

正则表达式表单验证实例代码详解

正则表达式表单验证实例代码详解 这篇文章主要介绍了正则表达式表单验证实例详解的相关资料,大家可以参考下.正则表达式表单验证具体内容如下: 首先给大家解释一些符号相关的意义 * 匹配前面的子表达式零次或多次: ^ 匹配输入字符串的开始位置:$匹配输入字符串的结束位置 1. /^$/ 这个是个通用的格式. 2. 里面输入需要实现的功能. \d 匹配一个数字字符,等价于[0-9] + 匹配前面的子表达式一次或多次: ?匹配前面的子表达式零次或一次: 下面通过一段代码给大家分析表单验证正则表达式,具体代

Android研究之手势交互实例实现详解

 先来几张效果图: 一.没有抛掷: 二.向右抛掷一次 三.向右再抛掷一次 接下来说说Android开发中对于手势动作的识别参考资料... 首先,在Android系统中,每一次手势交互都会依照以下顺序执行. 1. 接触接触屏一刹那,触发一个MotionEvent事件. 2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象. 3. 通过GestureDetector(手势识别器)转发次MotionEvent对象至OnGestureList

Java设计模式之十一种行为型模式(附实例和详解)

Java经典设计模式共有21中,分为三大类:创建型模式(5种).结构型模式(7种)和行为型模式(11种). 本文主要讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:J设计模式之五大创建型模式(附实例和详解). 设计模式之七大结构型模式(附实例和详解). 行为型模式细分为如下11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 接下来对11种行为型模式逐个进行介绍. 一.策略模式 策略模式定义了一系列

使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解

使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解 背景:这几天从阿里云上面购买了云服务器,最垃圾的那种,还送oss和EDS数据库服务器,只不过EDS数据库服务器只有一个月的,就主动升级为一年的,49还是59忘了.对于配置这种EDS过程中,产生的一个念头就是:大厂就是大厂,考虑到用户使用产品的各个方面,都给你解释的清清楚楚,安排的明明白白的.所以,完全可以按照官方给的文档数据库权限用户和创建数据库和表,并使用Navicat连接到远程服务器 自己写文档不给官方文档,实

lamp +discuz+wordpress+phpmyadmin实例安装详解

应用需求如下:1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache和nginx + php 2. 同时安装apache和nginx,其中nginx启动80端口,用来跑静态对象(图片.js.css),apache监听88端口,负责跑动态页(php相关的),并且需要由nginx代理对外访问3. mysql服务器需要开启慢查询日志4. 搭建discuz.wordpress以及phpmyadmin,域名分别为bbs.test.com, blog.test.com, php