比较从C中的套接字接收的字符串数据 [英] Comparing string data received from a socket in C

查看:144
本文介绍了比较从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆