比较从 C 中的套接字接收的字符串数据

H4c*_*0rD 2 c c++ sockets

我有一个关于套接字的问题。我有这个代码:

while(bytes = recv(sClient, cClientMessage, 599, 0)){
Run Code Online (Sandbox Code Playgroud)

这会将它接收到的消息放入 cClientMessage 并且消息始终是“消息”。我如何做出像if(cClientMessage == "Message"){//do func}. 现在这段代码不会做我想要的功能。我认为这是因为它没有正确接收消息。有人能帮我吗?

小智 5

尝试:

if( strcmp( cClientMessage, "Message")) == 0 ) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

编辑,以下来自 strager 的建议:

一个更好的解决方案是使用 memcmp,它不依赖于接收到的数据是否为空终止:

if( memcmp( cClientMessage, "Message", strlen( "Message") )) == 0 ) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)