0
我想做一個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]永遠不會等於我所做的任何選擇。
我該怎麼做才能讓用戶做出多種選擇?非常感謝!
'while(n = read(sd,rbuf,BUFLEN)){'n可能是負數。保重。 – wildplasser
使用[select](http://en.wikipedia.org/wiki/Select_(Unix))可能會有幫助。 – Recker