我想做一个TCP文件传输连接,使客户端可以选择他想做什么“任务”(列出目录中的文件,上传,下载一个文件),但是一旦他做出选择就不会终止。这意味着他可以在每个环节做更多的选择。有效的while循环条件客户端选择(TCP连接在Linux - C)
我的问题是,在我的实现在服务器端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]永远不会等于我所做的任何选择。
我该怎么做才能让用户做出多种选择?非常感谢!
+0
'while(n = read(sd,rbuf,BUFLEN)){'n可能是负数。保重。 –
+0
使用[select](http://en.wikipedia.org/wiki/Select_(Unix))可能会有帮助。 –