我正在尝试建立一个 TCP 文件传输连接,使客户端能够选择他想要执行的“任务”(列出目录中的文件、上传、下载文件),但一旦他做出选择就不会终止。这意味着他每节课可以做多个选择。
我遇到的问题是,在我在服务器端执行 while 循环时:
while(n= read(sd,rbuf,BUFLEN)){
if (rbuf[0] == 'R'){//CHANGE DIR
//char *dircha;
//read(sd, rbuf, BUFLEN);
printf("ENTER change directory\n");
//chdir(dircha);// this will change directory
}
if(rbuf[0] == 'L'){//LIST FILES
requiem[0] = 'I';
requiem[1] = 20;
printf("TYPE: %c", requiem[0]);
write(sd, requiem , 2);.... //rest of code
rbuf 没有被“清除”并且仍然包含客户端在输入选项时所做的字符,并且一旦它进入 while 循环并选择一个选项,它将永远无法选择另一个任务,因为 rbuf[0] 永远不会等于我做出的任何选择。
我该怎么做才能使用户可以做出多种选择?太感谢了!