比较从C中的套接字接收的字符串数据 [英] Comparing string data received from a socket in C
问题描述
我有一个关于套接字的问题。我有这个代码:
while(bytes = recv(sClient,cClientMessage,599,0)){
这将把消息记录到cClientMessage中,消息总是消息。我如何做一个if语句如 if(cClientMessage ==Message){// do func}
。现在这个代码不会做我想要的功能。我认为这是因为它没有收到消息的权利。
尝试:
if(strcmp(cClientMessage,Message))== 0){
// do something
}
按照strager的建议修改:
更好的解决方案(cClientMessage,Message,strlen(cClientMessage,Message)和 Message)))== 0){
// do something
}
I have a question on sockets. I have this code:
while(bytes = recv(sClient, cClientMessage, 599, 0)){
This puts the message it recives into cClientMessage and the message is always "Message". How I made an if statement like if(cClientMessage == "Message"){//do func}
. Now this code will not do the function I want. I think this is because it's not receiving the message right. Can someone help me?
Try:
if( strcmp( cClientMessage, "Message")) == 0 ) {
// do something
}
Edit, following suggestion from strager:
A better solution, which does not depend on the received data being null terminated is to use memcmp:
if( memcmp( cClientMessage, "Message", strlen( "Message") )) == 0 ) {
// do something
}
这篇关于比较从C中的套接字接收的字符串数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!