51Testing软件测试论坛

标题: LR socket编程,data.ws拼代码疑问 [打印本页]

作者: henry1987620    时间: 2010-5-24 19:36
标题: LR socket编程,data.ws拼代码疑问
自己最后解决了
解答:确实就是buf写的不对。
long型的1,应该是"\x01\x00\x00\x00"而不是"\x00\x00\x00\x01"


有点疑问,不知道是不是buf0的书写错误,"\X0a"不能代表16进制的10?

我的目的是利用socket,发送一个buf模拟协议字符串。

上午在程序端调试了下,端口是连接上了,
但是发送的数据不对,一直都是一个很大的固定值  “0X455DF7a0”
我的期望值是
“1”
“1”
“10”
“257”
“17”
"S[S:word]"  
“192.168.5.164 ”
“5558”
                                         
我的疑问还是 我的buf0的写的不对?


附上action:
#include "lrs.h"
Action()
{
lrs_set_connect_timeout(70, 0);
lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.5.164:5558", LrsLastArg);
lrs_set_send_timeout(70, 0);
lr_start_transaction("hotcache");
lrs_send("socket0", "buf0", LrsLastArg);
//lrs_set_recv_timeout(70, 0);
//lrs_receive("socket0", "buf1", LrsLastArg);
lr_end_transaction("hotcache", LR_AUTO);
lrs_close_socket("socket0");
lr_think_time(10);
    return 0;
}


这是我的data文件:
;WSRData 2 1

send buf0
        "\x00\x00\x00\x01"                                     //1
        "\x00\x00\x00\x01"                                     //1
        "\x00\x00\x00\x0a"                                      //10
        "\x00\x00\x01\x00"                                      //257
        "\x00\x00\x00\x11"                                       //17(检索词9+后2个long共8字节)
        "S[S:word]"                                            //具体的检索词格式
        "\xc0\xa8\x05\xa4"                                      //IP地址:192.168.5.164
        "\x00\x00\x15\xb6"                                     //端口号:5558


recv buf1 -1

-1

具体的协议如下:

[attach]62413[/attach]

[ 本帖最后由 henry1987620 于 2010-5-28 09:01 编辑 ]
作者: henry1987620    时间: 2010-5-25 08:52
请帮忙看下 是不是仅仅是拼串的问题
谢谢
作者: 第八颗北斗星    时间: 2010-5-25 10:23
你还没说具体问题呢,偶最近也在关注sockets
作者: henry1987620    时间: 2010-5-25 14:50
原帖由 第八颗北斗星 于 2010-5-25 10:23 发表
你还没说具体问题呢,偶最近也在关注sockets


上午在程序端调试了下,端口是连接上了,
但是发送的数据不对,一直都是一个很大的固定值  “0X455DF7a0”
我的疑问还是 我的buf0的写的不对?
作者: henry1987620    时间: 2010-5-25 18:45
没有人能看看懂么
自己也只能慢慢从最初级研究了
PS:
官方英文文档还是很健全的,不过还是有些具体的东西没搞懂
作者: henry1987620    时间: 2010-5-27 08:55
没人能回答么?
作者: henry1987620    时间: 2010-5-28 08:59
比较无奈啊 最后还是自己解决了
竟然论坛上没人能解答
答案写在最前面了。
作者: shanxi    时间: 2010-5-28 09:25
原帖由 henry1987620 于 2010-5-28 08:59 发表
比较无奈啊 最后还是自己解决了
竟然论坛上没人能解答
答案写在最前面了。


你的解决方案是不是 网络数据包的发送顺序 是大尾/小尾的意思?
作者: henry1987620    时间: 2010-5-28 14:51
原帖由 shanxi 于 2010-5-28 09:25 发表


你的解决方案是不是 网络数据包的发送顺序 是大尾/小尾的意思?


不太明白你说的大尾小尾的意思。
请详细解释一下,谢谢。

我犯的错误,例如 本来想发送一个long型(4bytes)的1,在data.ws的buf里,应该写成“\x01\x00\x00\x00"但是我写成了"\x00\x00\x00\x01"了。
作者: linyucc    时间: 2010-8-23 16:36
顶啊 ,很想知道楼主 下面这个是参考什么转化的,我是新手。
     "\x00\x00\x00\x01"                                     //1
        "\x00\x00\x00\x01"                                     //1
        "\x00\x00\x00\x0a"                                      //10
        "\x00\x00\x01\x00"                                      //257
        "\x00\x00\x00\x11"                                       //17(检索词9+后2个long共8字节)
        "S[S:word]"                                            //具体的检索词格式
        "\xc0\xa8\x05\xa4"                                      //IP地址:192.168.5.164
        "\x00\x00\x15\xb6"                                     //端口号:5558
作者: linyucc    时间: 2010-8-23 19:33
这种16进制的 怎么转化成 左边的字符啊  有什么程序自动转吗  不可能手动吧
作者: linyucc    时间: 2010-8-24 09:08
up up  up  up  up
作者: candyzc    时间: 2011-8-4 15:04
楼主好厉害呀,佩服
作者: yxd2006    时间: 2012-6-10 16:46
学习中……




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2