0

我正在尝试使用多个命令实现服务器。到目前为止,大多数命令都有效,除了我希望服务器在客户端向 quit 命令写入参数时向客户端发送警告。(IE 退出 xyz) 并让用户重试而不是退出服务器。不幸的是,无论用户键入退出还是退出参数,服务器都会退出。

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);
4

3 回答 3

1

我只会使用:

...
}
while(!done);

检查是没有意义的cmd

于 2013-10-15T19:08:26.607 回答
0

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

于 2013-10-15T19:10:34.890 回答
0

在 while 条件下删除 cmd 上的测试。每当他的用户选择“退出”时,它的计算结果为假,因此整个表达式由于连接而为假,并且循环退出

于 2013-10-15T19:54:16.730 回答