我已经用这个约2天了.我被困了,有一个相当简单的烦恼,但我无法解决它.
我的程序基本上从PHP脚本中获取TCP连接.并且发送的消息存储在char buffer[1024];.好的,这个缓冲区变量包含一个唯一键,它与a进行比较char key[1024] = "supersecretkey123";
问题本身就是这两者并不相同 - 无论我做什么.我一直在将缓冲区和键变量打印在彼此之上,看起来它们是100%相同的.但是我的均衡测试仍然失败.
if(key == buffer) { // do some thing here etc }
Run Code Online (Sandbox Code Playgroud)
然后我开始在互联网上搜索可能出错的一些信息.我后来意识到这可能是一些令我讨厌的逃脱角色.但我无法打印它们,删除它们甚至确保它们在那里.所以这就是为什么我被困 - 当缓冲变量与关键变量匹配时,如何使这些相等的想法.除非手动修改密钥的声明,否则密钥不可能.程序本身正在接收信息并"正确"发回信息.
谢谢.
如果您使用空终止字符串,请使用正确的api - strcmp及其变体.
此外,char key[1024] = "supersecretkey123";不需要声明中的大小- 编译器将减少它或堆栈/堆内存将被浪费.