henry1987620 发表于 2010-5-24 19:36:22

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"
“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"                                          //具体的检索词格式
      "\xc0\xa8\x05\xa4"                                    //IP地址:192.168.5.164
      "\x00\x00\x15\xb6"                                     //端口号:5558


recv buf1 -1

-1

具体的协议如下:



[ 本帖最后由 henry1987620 于 2010-5-28 09:01 编辑 ]

henry1987620 发表于 2010-5-25 08:52:11

请帮忙看下 是不是仅仅是拼串的问题
谢谢

第八颗北斗星 发表于 2010-5-25 10:23:24

你还没说具体问题呢,偶最近也在关注sockets

henry1987620 发表于 2010-5-25 14:50:08

原帖由 第八颗北斗星 于 2010-5-25 10:23 发表 http://bbs.51testing.com/images/common/back.gif
你还没说具体问题呢,偶最近也在关注sockets

上午在程序端调试了下,端口是连接上了,
但是发送的数据不对,一直都是一个很大的固定值“0X455DF7a0”
我的疑问还是 我的buf0的写的不对?

henry1987620 发表于 2010-5-25 18:45:16

没有人能看看懂么
自己也只能慢慢从最初级研究了
PS:
官方英文文档还是很健全的,不过还是有些具体的东西没搞懂

henry1987620 发表于 2010-5-27 08:55:52

没人能回答么?

henry1987620 发表于 2010-5-28 08:59:14

比较无奈啊 最后还是自己解决了
竟然论坛上没人能解答
答案写在最前面了。

shanxi 发表于 2010-5-28 09:25:23

原帖由 henry1987620 于 2010-5-28 08:59 发表 http://bbs.51testing.com/images/common/back.gif
比较无奈啊 最后还是自己解决了
竟然论坛上没人能解答
答案写在最前面了。

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

henry1987620 发表于 2010-5-28 14:51:51

原帖由 shanxi 于 2010-5-28 09:25 发表 http://bbs.51testing.com/images/common/back.gif


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

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

我犯的错误,例如 本来想发送一个long型(4bytes)的1,在data.ws的buf里,应该写成“\x01\x00\x00\x00"但是我写成了"\x00\x00\x00\x01"了。

linyucc 发表于 2010-8-23 16:36:11

顶啊 ,很想知道楼主 下面这个是参考什么转化的,我是新手。:hug:
   "\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"                                          //具体的检索词格式
      "\xc0\xa8\x05\xa4"                                    //IP地址:192.168.5.164
      "\x00\x00\x15\xb6"                                     //端口号:5558

linyucc 发表于 2010-8-23 19:33:00

这种16进制的 怎么转化成 左边的字符啊有什么程序自动转吗不可能手动吧

linyucc 发表于 2010-8-24 09:08:45

up upupupup

candyzc 发表于 2011-8-4 15:04:23

楼主好厉害呀,佩服

yxd2006 发表于 2012-6-10 16:46:51

学习中……
页: [1]
查看完整版本: LR socket编程,data.ws拼代码疑问