我对套接字有疑问。我有以下代码:

while(bytes = recv(sClient, cClientMessage, 599, 0)){

这会将接收到的消息放入cClientMessage,并且消息始终为“Message”。我如何制作类似if(cClientMessage == "Message"){//do func}的if语句。现在,此代码将无法执行我想要的功能。我认为这是因为它没有正确接收消息。有人能帮我吗?

最佳答案

尝试:

if( strcmp( cClientMessage, "Message")) == 0 ) {
   // do something
}

根据strager的建议进行编辑:

一个更好的解决方案是使用memcmp,它不依赖于接收到的数据是否为null终止:
if( memcmp( cClientMessage, "Message", strlen( "Message") )) == 0 ) {
   // do something
}

关于c++ - 比较从C中的套接字接收的字符串数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/621084/

10-11 01:31