我似乎找不到解决方案,大多数人都有以下问题,但这对我不起作用。
int sock_fd;
int new_fd;
int rc;
char recv_client_msg[100];
rc=read(new_fd, recv_client_msg, sizeof(recv_client_msg));
if(rc>0)
{
if(strcmp(recv_client_msg, "s1p1")==0) {printf("s1p1\n"); }
if(recv_client_msg[0]=="s") {printf("m\n");}
}
我的套接字功能齐全。当客户端打开时,如果我按“m”键,程序会在本地终端上打印“m”。 但是,当我打开客户端时键入“s1p1”时,我想在本地终端上打印“s1p1”。 然而,尽管阅读了前面的示例并且编译成功,但这并没有发生。
如有任何提示,我们将不胜感激
我的理论是,这可能与程序成功处理第一个字符“s”有关,但是当我输入“1”时,第一个“s”被“1”覆盖,而不是占用第二个槽在字符串中。
最佳答案
一些注意事项:
关于c - 在 C 中使用套接字时的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31001278/