51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1651|回复: 2
打印 上一主题 下一主题

[求助] memcpy时,与字符串相关的两个问题。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-3-20 20:38:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠:
我用loadrunner编写winSocket程序,想把一个字符串放到缓冲区中,然后send出去。

  memcpy(megaBody,
      "0000000000200000000000002350016\0<devID>\0<Message>\0xd\0xa<Ticket><ticket></Ticket>\0xd\0xa<Naming><devNaming></Naming>\0xd\0xa</Message>\0xd\0xa",
      totalLength-16);

上面是我写字符串的命令,我执行的时候,发现发送出去的数据内容不是我想要的,主要有两个问题:
1、devID、ticket、devNaming这几个参数没有被替换为正确的值,发出的报文内容中还是用的<devID> <ticket> <devNaming>,就是参数化失败了,哪里出问题了呀,我这几个参数明明有值啊。
2、\0xd\0xa代表回车换行,但是实际发出去的报文的内容是00 78 64 00 78 61(ascll字符),请问我怎么发回车和换行符啊?

请大家帮忙看看,先谢过了!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2013-3-21 11:13:36 | 只看该作者
问题2已经解决了,用\r\n代替\0xd\0xa,问题1是什么原因啊?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2013-3-21 17:06:11 | 只看该作者
问题1我是这样解决的:
memcpy(megaBody,"0000000000200000000000002350016\0",32);
memcpy(megaBody+32,lr_eval_string("<devID>"),31);
memcpy(megaBody+63,"\0<Message>\r\n<Ticket>",20);
memcpy(megaBody+83,lr_eval_string("<ticket>"),ticketLen);
memcpy(megaBody+83+ticketLen,"</Ticket>\r\n<Naming>",19);
memcpy(megaBody+83+ticketLen+19,lr_eval_string("<devNaming>"),84);
memcpy(megaBody+83+ticketLen+19+84,"</Naming>\r\n</Message>\r\n",23);
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 06:03 , Processed in 0.283632 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表