WinSocket报错,Specified buffer doesn't exist. Error code : 9011.
求助,这几天使用WinSocket协议编写脚本,但执行的时候报错:Specified buffer doesn't exist. Error code : 9011.脚本实现创建一个socket监听本地端口,并对连接进来的socket请求做回复。脚本如下:
//创建本地监听
lr_start_transaction("监听");
lrs_create_socket("socket0", "TCP", "LocalHost=7771", "Backlog=5",LrsLastArg);
i = lrs_accept_connection("socket0", "socket7");
if(i==0) //接收到连接
{
lr_end_transaction("监听", LR_PASS);
}else{
lr_end_transaction("监听", LR_FAIL);
lr_error_message("监听 returns fail.");
return 0;
}
lrs_receive("socket7", "buf10", LrsLastArg);
lrs_send("socket7", "buf11",LrsLastArg);
buf10可以接收到,但send的时候却提示找不到buf11 “Error : Specified buffer buf11 doesn't exist. Error code : 9011.”。
data.ws文件中明明有buf11:
sendbuf11 61
"0000280023XXXXXXX000002X000000000<ap><retno>0000</retno></ap>"
怀疑是不是因为本地监听的问题,但这样的报错提示却很怪异。大家有谁遇到过么? 把问题顶上去... 在data.ws文件里, 将recv 和 send 的顺序互换一下, 可以解决问题。
这里还有一点疑惑,不知道是不是lr 默认规定 send 和 revc有严格的顺序? 谢谢!搞定,但不知道为什么data.ws里的buf还需要有顺序? 回复 4# dionysus
亲爱滴版主,我也遇到这个问题,可是ws文件里面那么多的send和revc 一个一个都要换过来吗? 怎么换啊?求教中.... 楼主是怎么定义i的?
页:
[1]