yl32114717 发表于 2012-2-20 11:32:41

lrs_hex_string_to_int无法转换缓冲区数据至整形

部分脚本如下:
lrs_send("socket0", "buf8", LrsLastArg);

lrs_receive("socket0", "buf9", LrsLastArg);

bufPort=lrs_get_received_buffer("socket0",20,2,NULL);//获取缓冲区端口号

lrs_hex_string_to_int(bufPort,2,&i); //转换端口号为整数

itoa(i,testasc,10);   //转换端口号为字符串
       
outPortno=sortPort(testasc);

lr_save_int(outPortno,"PortNo");//保存端口号为参数

lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=Gate:<PortNo>", LrsLastArg);
主要是实现:
从服务端获取端口号,参数化端口号后进行连接
返回端口号buf
recvbuf9 24
        "\x02\xdb\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00"
        "\x00\x17"
        "'"
        "\x00\x00"
端口号为\x17"'"两位,通过以下函数获取端口号并转换至临时变量i
bufPort=lrs_get_received_buffer("socket0",20,2,NULL);//获取缓冲区端口号

lrs_hex_string_to_int(bufPort,2,&i); //转换端口号为整数
转换i为字符串itoa(i,testasc,10);   //转换端口号为字符串
由于获取的端口号为16位进制的并且从高位到低位排序的顾使用以下方法进行转换
调用方法outPortno=sortPort(testasc);
sortport()方法如下:
int sortPort(char *strPortno_in)
{
        char str1="";
        char strPortno_out="";
        char tmp1="",tmp2="";
        int intPortno_out=0;
        itoa(atoi(strPortno_in),str1,16);
        strncpy(tmp2,str1+2,2);
        tmp2='\0';
        strcat(strPortno_out,tmp2);
        strncpy(tmp1,str1,2);
        tmp1='\0';
        strcat(strPortno_out,tmp1);
        strPortno_out='\0';
        intPortno_out=zh(strPortno_out);
        return intPortno_out;
}

//16进制转化为10进制
int zh(char s[])
{
    int i,m,temp=0,n;
    m=strlen(s);//十六进制是按字符串传进来的,所以要获得他的长度
    for(i=0;i<m;i++)
    {
      if(s>='A'&&s<='F')//十六进制还要判断他是不是在A-F或者a-f之间a=10。。
         n=s-'A'+10;
      else if(s>='a'&&s<='f')
         n=s-'a'+10;
         else n=s-'0';
      temp=temp*16+n;
    }
    return temp;
}
问题:
运行都没问题,但是在运行场景至一段时间后系统会报以下错误
lrs_hex_string_to_int无法转换缓冲区数据,错误代码9013
在网上找了下有人说可能是ip限制的问题,故使用了ip欺诈从新运行场景
但问题依然存在。
求:
求高人给予解答啊!小弟谢过先了!在线等

yl32114717 发表于 2012-2-20 12:47:46

无人知道么?:dizzy:

yl32114717 发表于 2012-2-20 14:25:50

有高人解答么:dizzy:描述的不够详细还是怎么的:dizzy:

yl32114717 发表于 2012-2-20 17:38:42

哎,牛人来啊!!

yl32114717 发表于 2012-2-21 09:13:31

今天继续等,等到牛人为止
页: [1]
查看完整版本: lrs_hex_string_to_int无法转换缓冲区数据至整形