|
自己最后解决了
解答:确实就是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
具体的协议如下:
[ 本帖最后由 henry1987620 于 2010-5-28 09:01 编辑 ] |
|