|
有时候,使用LR录制的winsocket脚本一长串,我根本不知道它在干什么,一个简简单单的登入请求竟然录制了上千个Event
在这种情况下,我希望自己手动编写 Winsocket 脚本,把我需要的请求发送出去,然后,等服务器回应就行了
举个简单的例子
一个网络电子词典,从客户端发送要翻译的单词,服务器端翻译并返回结果(这个例子是自己C++ 练手写的,不怎么灵光,要源代码的话,可以给我发消息)
模拟客户端的LR代码如下:
#include "lrs.h"
Action()
{
char acTest[10];
char acSend[10];
char* pcTest3;
//发送指定的数据包
lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:5150", LrsLastArg);
memset(acTest,0,10);
sprintf(acTest,"<dict>\r\n");
lr_output_message("out value : %s",lr_eval_string(acTest));
strcpy(acSend,lr_eval_string(acTest));
lr_output_message("the Send Value is %s" ,acSend);
lrs_set_send_buffer("socket0",acSend,strlen(acSend));
lrs_send("socket0", "buf0", LrsLastArg);
//接受服务器信息,并将信息打印出来
lrs_receive("socket0", "buf1", LrsLastArg);
pcTest3=lrs_get_received_buffer ("socket0", 0, -1, NULL);
lr_output_message(pcTest3);
return 0;
}
1、我对发送的单词作了一个 Dict的参数化。
2、将这个参数化的单词取出后发送到服务器端。
3、在 data.ws 中添加如下 BUFF
send buf0 8
"n \r\n"
recv buf1 8
" \n"
实际上发送的是 你取出的那个单词,但是,在data.ws 中依然需要注明这两个空的BUFF
这样就完成了手工编写winsocket 的脚本,简单实用。
如果,反应不错的话,我将继续贴深入篇。
[ 本帖最后由 guirongb 于 2006-12-13 15:36 编辑 ] |
|