当前位置: 技术问答>linux和unix
(linux c)socket数据接受后判断是否相等的问题
来源: 互联网 发布时间:2016-09-14
本文导语: 我接受客户端的数据,接受函数是这样的形式,recv(sock1,recv_msg,.....),其中 char recv_msg[100],现在我发送了一个“start”,调用接受函数显示出这个值可以正常显示,printf后显示start,然后我判断if("start"==*recv_msg),不知道...
我接受客户端的数据,接受函数是这样的形式,recv(sock1,recv_msg,.....),其中 char recv_msg[100],现在我发送了一个“start”,调用接受函数显示出这个值可以正常显示,printf后显示start,然后我判断if("start"==*recv_msg),不知道为什么就是进入不到判断里面去,其实start是我发送的标志位,就是告诉接收端我开始发送数据了,然后接收端做相应操作,但是现在就是进入不了if里面去,我用if(strcmp(*str,*str2))这种形式也不行,如果要实现我要做的操作的话应该怎末做,请高手指教。
|
if("start"==*recv_msg) 这是比较一个指针和一个字符,显然不对,
if("start"==recv_msg) 这是两个指针之间的比较,比前一个稍好,但这是在比较指针的值而不是其内容,所以也不对。
比较字符串的内容要用strcmp或者memcmp
应该用 if (strcmp("start", recv_msg)==0)
或者 if (memcmp("start", recv_msg, strlen("start"))==0)
if("start"==recv_msg) 这是两个指针之间的比较,比前一个稍好,但这是在比较指针的值而不是其内容,所以也不对。
比较字符串的内容要用strcmp或者memcmp
应该用 if (strcmp("start", recv_msg)==0)
或者 if (memcmp("start", recv_msg, strlen("start"))==0)