2013-10-15 61 views
0

我想用多个命令来实现一个服务器。大多数命令工作到目前为止,只不过我希望服务器在客户端向quit命令写入参数时向客户端发送警告。 (I.E.退出xyz)并让用户再次尝试,而不是退出服务器。不幸的是,服务器退出用户是否输入退出或退出参数。为什么我的Do While循环终止?

bool done = false; 

do 
{ 
    if(strcmp(cmd, "quit") == 0) 
    { 
     if(strcmp(argument, "") != 0) 
      strcpy(replyMsg, "504 Command not implemented for that parameter.\n"); 
     else 
     { 
      strcpy(replyMsg,"221 Service closing control connection.\n"); 
      done = true; 
     } 
    } 
    while(strcmp(cmd, "quit") != 0 && done != true); 
+5

正确'{''} –

+0

您可能会缺少一个} – BlackBear

+0

缺少大括号做循环的大括号) –

回答

1

我只想用:

... 
} 
while(!done); 

是毫无意义的检查cmd

0

您的循环结构似乎在while 之前缺失大括号,或者是错字。先检查它并让我们看看正确的代码。

0

在while状态下移除cmd中的测试。当用户选择“退出”时,它的计算结果为false,因此整个表达式由于连接而出现错误,并且循环退出