我对套接字有疑问。我有以下代码:
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/